我曾经看过一篇关于Jquery的文章,声称在Jquery中有些属性有不同的名称。我认为这是在Jquery中作为val或类似的东西访问的value属性。 JQuery做了很多吗? Jquery的常见做法是更改属性名称吗?
答案 0 :(得分:1)
jQuery不会更改任何属性名称。
jQuery在jQuery对象上实现它自己的方法。这些与DOM属性或DOM方法完全分开。
例如,您可以使用.val()
方法从jQuery对象检索任何输入控件的值。在内部,jQuery对象上的.val()
方法访问DOM对象的内容(可能使用.value
属性),但它不会以任何方式替换该DOM属性。你仍然选择使用它。
类似地,jQuery有一个.html()
方法,它返回一个对象的innerHTML
。同样,这是jQuery对象上的jQuery方法,并不以任何方式替换DOM属性innerHTML
。
以下是一些代码示例:
<input id="test" type="text">
<div id="title">This is my Title</div>
使用普通的javascript:
var text = document.getElementById("test").value;
var title = document.getElementById("title").innerHTML;
使用jQuery:
var text = $("#test").val();
var title = $("#title").html();
请注意,两种jQuery方式都是方法调用,而不是属性。
即使使用jQuery对象,也可以使用.get(n)
方法从jQuery对象中获取DOM对象并使用DOM属性,但通常没有理由这样做:
var text = $("#test").get(0).value;
var title = $("#title").get(0).innerHTML;
答案 1 :(得分:0)
jQuery不会更改属性名称。 jQuery返回jQuery实例而不是dom元素。
如果你做$thing[0].value
它会起作用。如果你做$thing.prop("value")
它会起作用。
如果你使用$thing.val();
这是jQuery的val方法(类似于val的那种“但也有一堆奇怪的边缘情况魔法)那么它将”可能“返回包裹的dom的值元件。
答案 2 :(得分:0)
不是我知道的,val
的情况是因为它让你设置或获取所有表单字段(文本字段,单选按钮,复选框,textareas等)的值,这是不可能的只需在所有情况下执行input.value
。