2012-02-21 87 views
0

我曾经看到过一段关于Jquery的文章,指出在Jquery中有些属性有不同的名字。我认为这是价值属性,被访问在Jquery val或类似的东西。 JQuery是否做了很多? JQuery的常见做法是更改属性名称吗?JQuery中的属性名称是否有不同的名称?

回答

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对象时,你可以得到的DOM对象了使用.get(n)方法jQuery对象和使用DOM属性,虽然平时不是这样做的原因:

var text = $("#test").get(0).value; 
var title = $("#title").get(0).innerHTML; 
+0

' [0]'>>>'get(0)' – Raynos 2012-02-21 02:35:16

+0

@Raynos - 你的观点是什么?是的'[0]'基本上与jQuery对象上的'.get(0)'相同,但这显然是一个不熟悉jQuery的人,所以我认为使用'.get(0) '而不是必须解释一个jQuery对象也可以看作一个数组,所以你可以使用'[0]'。我不是在这里推荐编码模式,我试图解释DOM属性和jQuery方法之间的区别,不同的人不知道jQuery。 – jfriend00 2012-02-21 02:39:00

+0

我只是说'[0]'总比'.get(0)'好。这两个同样令人困惑 – Raynos 2012-02-21 03:38:01

0

jQuery不会更改属性名称。 jQuery返回不是DOM元素的jQuery实例。

如果你这样做$thing[0].value它会工作。如果你这样做$thing.prop("value")它会工作。

如果您使用$thing.val();这是jQuery的val方法(这是类似val的“kind”,但也有一些奇怪的边缘情况魔术),那么它将“可能”返回包裹的dom元素的值。

0

不是我所知道的,val的情况是因为它允许您设置或获取所有表单域(textfields,单选按钮,复选框,textareas等)的值,这些可能不是简单地通过做在所有情况下均为input.value

相关问题