JQuery中的属性名称有不同的名称吗?

时间:2012-02-21 01:52:10

标签: javascript jquery web client-side-scripting

我曾经看过一篇关于Jquery的文章,声称在Jquery中有些属性有不同的名称。我认为这是在Jquery中作为val或类似的东西访问的value属性。 JQuery做了很多吗? Jquery的常见做法是更改属性名称吗?

3 个答案:

答案 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