2015-04-06 63 views
1

我想要做的jQuery做這個jQuery的一套屬性:沒有價值

<option value="test" selected>...</option> 

但一切我試着給我:

<option value="test" selected="selected">...</option> 

我試圖.attr("selected", "")以及.attr("selected", true),但他們給出不期望的結果selected="selected"。我怎樣才能做到這一點?我在網上找到的所有內容都表明上述格式的前者或後者。

+0

你爲什麼要關心它? – charlietfl

回答

6

你不應該擔心該屬性的一切,你應該改變財產

$('option').prop('selected', true); 

您還可以通過僅僅改變選擇的值(假設它不是multiple設置所選選項)

$('select').val('test'); 

不要緊,它是什麼樣子的HTML,它在的事項,既爲設置選項,選擇並提交它的形式當DOM表示。


僅供參考,<option value="test" selected="selected">是不是不理想的根本,這是完全有效的,你通常會想要什麼。

當存在selected屬性時,無論屬性值如何,該選項都會被選中,即使該屬性值爲空,該選項也會被選中。

屬性應該有值的,所以selected="selected"是罰款,甚至像selected="hello kitty"會選擇該選項,不選它,你會刪除該屬性,但同樣,你應該改變財產!

+0

是的,我也試過,但由於某種原因,它似乎沒有任何區別。我不明白。爲什麼'.attr'工作,但不是'.prop'? – Chris

+0

你使用最新的jQuery嗎? –

+0

好吧,首先,你在問題中發佈的HTML片段都是有效的,通常你會想要後者,這就是爲什麼你用'attr'得到的結果。其次,如上所述,你應該改變底層屬性,而不是屬性,但'prop'是在jQuery 1.6中添加的,希望你使用的是比這更新的版本。 – adeneo