`

Jquery中text、html、val三者的区别

阅读更多
    今天参考jquery的文档发现三个相似的函数 text val html ,于是网上Google了一下,这是个问题,没有很好的解答,于是下午无聊,开始研究

text()

    jquery的具体的函数功能就不介绍了,其实text是调用jquery中getText(),而getText是一个从DOM数组中取得text value的工具函数(记得是Dom数组),具体实现就是遍历Dom数组的每一个Dom元素,然后判断他的节点类型(if ( elem.nodeType === 3 || elem.nodeType === 4 ))这句代码的意思就是判断此节点是否是文本节点或者是CDATA,若是的话就直接去elem的nodevalue。若不是则判断节点是不是注释节点如不是,则递归遍历此节点的子节点(getText( elem.childNodes ))。如此遍历最后得到text value。

有上面分析可得到jquery对象的text就是取此节点的nodevalue或是此节点的子节点的nodevalue。所以即使嵌套的再深,也会取得文本节点的值。

注意:通过选择器返回的jquery对象其实是一个数组。

<div id=”div1”><div id=”div2”>Find Me</div></div>

jquery代码 $(“#div1”).text() 返回Find Me



val()

    val()的具体实现是根据jquery对象包装的Dom元素的value属性来的。并不是所有的Dom都有value属性,详细的各Dom元素具有的属性

DOm中有value属性的是Button ImageButton(设置或返回在按钮上显示的文本) CheckBox(设置或返回 checkbox 的 value 属性的值) File(返回由用户输入设置的文本后,FileUpload 对象的文件名。) Hidden(设置或返回隐藏域的 value 属性的值。),Password ,Radio , Reset (设置或返回按钮上显示的文本),Submit Text Option textarea

注意select虽然没有value属性,但是val在取得元素的value属性之前还有一个判断,子啊valhooks中也好像只针对了select和option

hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];

if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {

return ret;

其实本人对其中的代码就不是很清楚了(有兴趣自己研究啊)。但他保证了select正确取得val();

而其他jquery对象取得Val,好像只是一个“”;



html

    不用我说你也已经猜到,这个方法调用的是哪个Dom属性,bingo!就是innerhtnl,其实本人对innerhtml不是很熟

看起来跟text很像啊,其实不然,前面我们说过,text其实取得一致都是text节点的值,而innerhtml却是只取包裹的元素,像上面的那个例子就会返回<div di=”div2

“>Find ME</div> ,其实我还试过取得select的html,如你所愿确实是很多option,但值得注意的是并不是所有的html标签都可以包裹元素,比如像input就不可以。



总体上我就理解这么多,初学jquery很多东西不知道,希望各位见谅
分享到:
评论

相关推荐

    jquery中html、val与text三者属性取值的联系与区别介绍

    以上就是对jquery中html、val与text属性取值的联系与区别的详细介绍。通过具体的示例和应用场景,我们能够更加清晰地理解这三者各自的作用,并在实际开发中正确使用它们来获取或设置相应的DOM元素内容。

    JQuery中文帮助文档

    可以使用`html()`、`text()`和`val()`方法来设置或获取元素的HTML内容、文本内容和值。`append()`、`prepend()`用于在元素内部添加内容,而`remove()`则可以移除元素。 **三、事件处理** jQuery提供了一套统一的...

    jquery 中文文档

    jQuery提供了丰富的DOM操作方法,如`html()`、`text()`、`val()`用于设置或获取元素的HTML内容、文本内容和值;`append()`、`prepend()`用于在元素内部添加内容;`before()`、`after()`用于在元素前后插入内容。 四...

    jquery 版三级联动

    对于初学者来说,通过实践jQuery的三级联动,可以更好地理解和掌握DOM操作、事件绑定以及数据处理等基础概念。 在实际的实现过程中,首先我们需要创建三个级别的选项列表,通常用`&lt;select&gt;`标签表示。然后,通过...

    jQueryAPI1.4 chm 中文

    此外,还有`.html()`, `.text()`, `.attr()`, `.val()`等方法用于获取或设置元素内容和属性。 三、事件处理 jQuery对事件处理进行了封装,使得事件绑定和解绑更加简洁。例如,`$("#myButton").click(function() { ....

    jquery 中文说明文档

    `remove()`用于删除元素,而`html()`, `text()`, `val()`则分别用于获取或设置元素的HTML内容、文本内容和表单字段值。 ### 4. 事件处理 jQuery的事件处理方式比原生JavaScript更加简洁。`on()`函数是事件绑定的...

    jquery手册-jQuery1.3

    2. DOM操作:通过`$()`函数可以创建jQuery对象,然后使用`.html()`, `.text()`, `.attr()`, `.val()`等方法来读取或修改元素的内容、属性和值。 3. 链式操作:jQuery的方法返回的都是jQuery对象,因此可以进行链式...

    jquery 基础教程 pdf

    - **元素增删改查**: `append()`, `prepend()`, `remove()`, `empty()`, `replaceWith()`, `toggleClass()`, `attr()`, `val()`, `text()`, `html()`等。 - **事件处理**: `click()`, `change()`, `hover()`, `...

    jQuery常见开发技巧详细整理

    例如,`$(“div”).eq(2)`和`$(“div”).get(2)`分别对应集合中的第三个`&lt;div&gt;`元素,前者可继续调用jQuery方法,后者则适用于DOM方法。 4. **同名函数实现set和get**:许多jQuery方法如`html()`, `text()`, `...

    jquery-starterkit实例

    jQuery提供了一系列方法用于DOM操作,如`html()`、`text()`和`val()`,分别用于获取或设置元素的HTML内容、文本内容和表单字段的值。`append()`和`prepend()`用于在元素内部添加内容,`before()`和`after()`则在元素...

    jquery教程chm格式

    4. 修改元素:$.fn.html()、$.fn.text()、$.fn.val()分别用于设置元素内容、文本和值。 5. 操作属性:$.fn.attr()用于获取或设置属性,$.fn.removeAttr()用于移除属性。 三、事件处理 6. 绑定事件:$.fn.on()用于...

    jquery类库和帮助文档

    总的来说,这个“jquery类库及技巧”压缩包是jQuery开发者不可或缺的工具,无论你是初学者还是经验丰富的开发者,都能从中找到有价值的信息,提升开发效率和项目质量。通过深入学习和实践,你将能够充分利用jQuery的...

    jquery_mxp.rar

    例如,了解如何使用`$(selector)`选择元素,如何使用`.html()`、`.text()`和`.val()`来操作HTML内容,以及如何利用`.append()`、`.prepend()`等方法进行DOM操作。 jQuery_api_for_dw4和jQuery_api_for_dw3是为...

    jquery-1.4.2库

    同时,$.html()、$.text()和$.val()用于获取或设置元素的HTML、文本和值。此外,$.remove()和$.empty()可以用来移除元素和清空内容。 四、事件处理 jQuery提供了统一的事件绑定方法$.on(),可以方便地为元素添加...

    jquery帮助文档(HTML版)

    此外,`html()`, `text()`, 和 `val()`分别用于设置或获取元素的HTML内容、文本内容和表单字段的值。 在事件处理方面,jQuery提供了一种统一的方式来绑定和触发事件。例如,`click()`函数用于绑定点击事件,`on()`...

    jquery中文帮助

    jQuery提供了一系列方法用于操作DOM元素,如`append()`和`prepend()`用于在元素内部添加内容,`remove()`和`empty()`用来移除元素或清空内容,`clone()`用于复制元素,而`html()`, `text()`, 和`val()`则分别用于...

    jquery中val()方法是从最后一个选项往前读取的

    也就是说,如果你对一个元素调用val()方法并赋予某个值,jQuery会从的最后一个元素开始向前查找,直到找到匹配的value或显示文本(text)为止,并将该项设为选中状态。 这个特性在一些特定的场景下会变得尤为重要,...

    accp7.0jQuery第九章完整版

    jQuery对象提供了许多方法,如`html()`、`text()`和`val()`,用于获取或设置元素的HTML内容、文本内容和表单字段的值。 二、DOM操作 jQuery提供了强大的DOM操作接口。`append()`和`prepend()`可以向元素内部添加...

    jQuery最新版中文参考手册

    jQuery提供了丰富的DOM操作方法,如`append()`用于在元素内部添加内容,`prepend()`在元素内部前置内容,`remove()`删除匹配的元素,`html()`、`text()`和`val()`分别用于获取或设置元素的HTML内容、文本内容和表单...

Global site tag (gtag.js) - Google Analytics