jQuery .attr()和值

时间:2010-10-01 21:57:53

标签: javascript jquery attributes

我想使用.attr();

selectbox.options[selectbox.selectedIndex].value

不幸的是,

selectbox.options[selectbox.selectedIndex].attr("value")

不一样,似乎完全打败了.attr的目的。我的主要问题是:如何使用嵌套的.attr()s?

Muchos gracias mi amigos

4 个答案:

答案 0 :(得分:7)

要获取任何类型的输入元素(包括<textarea><select>)的值,请使用.val()

var value = $(selectbox).val();

.attr()翻译大致是:

$(selectBox).find(":selected").attr("value");

....但只需使用.val():)

基本问题是.attr()是一个jQuery方法。它是在jQuery对象上,而不是直接在DOM元素上,几乎所有所有 jQuery方法和插件都是如此。

答案 1 :(得分:1)

使用attr()时,您必须使用jQuery对象。因此,首先选择相关的选择框,然后在需要输入元素的值时调用attr()(或val())。

var value = $(selectbox).val();

答案 2 :(得分:1)

如果您想使用当前代码检索所选框的值,只需将其传递到jquery对象中即可。

$(selectbox.options[selectbox.selectedIndex]).attr('value');

答案 3 :(得分:0)

它们不相同的原因是因为attr('value')直接从原始HTML代码中获取value属性的值,未使用DOM更新,意味着如果在页面加载后更改了value的值,无论是通过用户输入(键入<input>元素,还是通过JavaScript操作),这些更改都不会反映在返回的值中.attr()

更好的方法是使用jQuery对象的.val()方法。


修改 要从DOM元素获取值的属性(即,不由$()jQuery()函数返回),请使用本地的element.getAttribute()方法,您可以像这样使用它:

selectbox.options[selectbox.selectedIndex].getAttribute("value");