zoukankan      html  css  js  c++  java
  • jquery冲突的关键字nodeName、nodeValue和nodeType!

    转自:https://blog.csdn.net/hdfyq/article/details/52805836

    【缘由】在工作流数据库设计的时候,  都节点管理的功能。  结果有2个字段为  NODE_TYPE, NODE_NAME, 在编辑的时候,form表单load出现问题, 字段为nodeType和nodeName的input框, 都报错。。。。

    转载一文章:不该被遗忘的nodeName、nodeValue和nodeType!-五岳之巅-ChinaUnix博客
    http://blog.chinaunix.net/uid-22414998-id-2199425.html

    ---------------------以下为转载-----------------------------------------------------------------------------

    nodeName、nodeValue 以及 nodeType 包含有关于节点的信息。
     
    (一)nodeName 属性含有某个节点的名称。
    元素节点的 nodeName 是标签名称
    属性节点的 nodeName 是属性名称
    文本节点的 nodeName 永远是 #text
    文档节点的 nodeName 永远是 #document
    注释:nodeName 所包含的 XML 元素的标签名称永远是大写的
     
    (二)nodeValue
    对于文本节点,nodeValue 属性包含文本。
    对于属性节点,nodeValue 属性包含属性值。
    nodeValue 属性对于文档节点和元素节点是不可用的。
     
    (三)nodeType
    nodeType 属性可返回节点的类型。
    最重要的节点类型是:
    元素类型 节点类型
    元素element 1
    属性attr 2
    文本text 3
    注释comments 8
    文档document 9
     
    (四)所以,看jQuery手册的一个实例:
    示例描述:查找所有文本节点并加粗
    HTML 代码:

    Hello John, how are you doing?


    jQuery 代码:$("p").contents().not("[nodeType=1]").wrap("");
     
    结果:

    Hello John, how are you doing?



    实例中,nodeType也是属性值,不等于1就是说选择p内的子节点里不是html标记的东西。所以,记录下来备忘。
     
    ---------------------以下为转载-----------------------------------------------------------------------------
    转载2:JQuery 实践问题 - toLowerCase 错误 - acooly - ITeye技术网站
    http://acooly.iteye.com/blog/1882726
     

    在应用JQuery+easyui开发的项目的时候,今天突然在一个模块报错:

    Chome下:

    Uncaught TypeError: Object #<HTMLInputElement> has no method 'toLowerCase'

    IE下:

    SCRIPT438: 对象不支持“toLowerCase”属性或方法 

    jquery-1.8.3.js, 行1719 字符3

    郁闷很久,下载JQuery源代码调试,更换版本,调整DOCTYPE,都没有办法解决,而且最怪的是只有这个模块,其他模块都是正常的,冷静下来判断可能问题出在该模块上。于是仔细的分析该报错的简单页面。如下

    Html代码  收藏代码
    1. <%@ page contentType="text/html;charset=UTF-8"%>  
    2. <%@ include file="/manage/common/taglibs.jsp"%>  
    3. <div align="center">  
    4.     <form id="manage_flownode_editform" action="url" method="post">  
    5.       <jodd:form bean="flowNode" scope="request">  
    6.         <input name="id" type="hidden" />  
    7.         <table class="tableForm" width="100%">      
    8.       <tr>  
    9.         <th width="30%">节点名称:</th>  
    10.         <td><input type="text" name="nodeName" class="easyui-validatebox" data-options="required:true" validType="length[1,32]"/></td>  
    11.       </tr>                                     
    12.         </table>  
    13.       </jodd:form>  
    14.     </form>  
    15. </div>  

        于是逐一删减代码分析,发现问题出在一个表单的命名上:

         <input type="text" name="nodeName" class="easyui-validatebox" data-options="required:true" validType="length[1,32]"/>
    修改nodeName为其他名称后,问题解决。我靠~ 浪费了3,4个小时啊。兄弟们,千万不要命名表单的名称为nodeName啊。

  • 相关阅读:
    兼容IE678浏览器的html5标签的几个方案
    CommonJS和AMD/CMD
    axios的使用
    自己写表单校验插件
    表单校验
    JS打开新窗口的2种方式
    mac 上使用移动硬盘
    Boostrap
    Web.config详解
    DataTable
  • 原文地址:https://www.cnblogs.com/sharpest/p/11078487.html
Copyright © 2011-2022 走看看