2011-10-25 213 views
0

早上好/下午,通過JavaScript獲取onChange屬性的特定屬性的值

不是一個問題,而是更多的查詢。如果我有下面的代碼來抓住下拉框中的用戶選擇(請參見圖1),那麼我該如何添加同時獲取特定屬性值的功能? (見圖2)

圖1:

<select onChange="productString(this.value)"> 
    <option selected>Please Choose an Option</option> 
    <option value="Foo"></option> 
</select> 

圖2:

<select onChange="productString(this)"> 
    <option selected>Please Choose an Option</option> 
    <option value="Foo" id="Bar"></option> 
</select> 

如果有人會這麼好心太告訴我在哪裏,我在圖2中去錯了,它會不勝感激。

在此先感謝,

丹。

編輯:::::

下面的工作會收集信息嗎?

function productString(element) { 
    var id = element.value; 
    var name = element.id; 
    var box = element.class; 
} 

回答

1

剛及格雖然this

<select onChange="productString(this)"> 

,然後你可以得到任何你想要的:

function productString(element) { 
    var value = element.value, id = element.id; 
    // ... 
} 

Here is a sample jsfiddle

編輯 —哎呀對不起 - 這是正在通過傳遞的元素, 在IE 無處不在(哎呀我必須是盲人),「選擇」元素,而不是「選項」。因此:

function productString(element) { 
    if (element.tagName.toLowerCase() === 'select') 
     element = element.options[element.selectedIndex]; 

    var id = element.id; 
    var value = element.value; 
    // ... 
} 

Updated jsfiddle

+0

Ahhh如此嚴格地傳遞'this'會抓取整個元素而不是特定的屬性? – zealisreal

+0

是的,它將是對元素的DOM節點的引用。 – Pointy

+0

如果像這樣寫了這個工作,這個工作嗎?函數productString(element){ \t var id = element.value; \t var name = element.id; \t var box = element.class; – zealisreal