我想使用.attr();
selectbox.options[selectbox.selectedIndex].value
不幸的是,
selectbox.options[selectbox.selectedIndex].attr("value")
不一样,似乎完全打败了.attr的目的。我的主要问题是:如何使用嵌套的.attr()s?
Muchos gracias mi amigos
答案 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");