我想做以下使用.attr();jQuery .attr()和值
selectbox.options[selectbox.selectedIndex].value
可悲的是,
selectbox.options[selectbox.selectedIndex].attr("value")
是不一樣的,而且似乎完全打敗.attr的目的。我的主要問題是:如何使用嵌套的.attr()s?
Muchos格拉西亞斯MI戈斯
我想做以下使用.attr();jQuery .attr()和值
selectbox.options[selectbox.selectedIndex].value
可悲的是,
selectbox.options[selectbox.selectedIndex].attr("value")
是不一樣的,而且似乎完全打敗.attr的目的。我的主要問題是:如何使用嵌套的.attr()s?
Muchos格拉西亞斯MI戈斯
使用attr()時,您必須使用jQuery對象。因此,首先選擇相關的選擇框,然後在需要輸入元素的值時調用attr()(或val())。
var value = $(selectbox).val();
的原因,他們是不一樣的,因爲attr('value')
得到value
的值直接從原始的HTML代碼屬性,它不更新與DOM,如果value
值後,改變的意思在頁面加載,或者通過用戶輸入(鍵入到<input>
元件,或經由與JavaScript操作,這些變化將不被在.attr()
返回值反映出來。
一種更好的方法是使用的所述.val()
方法jQuery對象
編輯 爲了從一個DOM元素值的屬性(即不是由$()
或jQuery()
函數返回)使用element.getAttribute()
方法,這是本地的,你會使用這樣的:
selectbox.options[selectbox.selectedIndex].getAttribute("value");
他打算*取*這個值,這不是問題......它就是'.attr()'甚至不是DOM元素上的有效方法:) – 2010-10-01 22:05:44
哦,我現在看到了,我只是假設他正在使用jQuery,所以我沒有看他的代碼,並發現非jQueryness。謝謝 :) – 2010-10-01 22:07:09
如果您想使用當前的代碼簡單地將它傳遞到檢索選擇框的值這樣的jquery對象。
$(selectbox.options[selectbox.selectedIndex]).attr('value');
JavaScript沒有'attr'函數。 jQuery的確。我編輯了標題。 – 2010-10-01 22:05:06
@ T.J。 Crowder thanks – sova 2010-10-03 22:29:45