[英]Jquery operation on DOM element with '.' in ID has no effect
例如“Live”版本: http : //jsfiddle.net/Ltmbd/5/
<html> <body> <select id="some.list" > <option value="1" >AAA</option> <option value="2" >BBB</option> </select> </body> </html>
和相應的javascript / jquery:
$(function() { $("select").each(function() { $(this).val("2"); }); });
這應該在選擇列表中選擇“BBB”(如果從ID“some.list”中刪除'。',它將按預期工作)。 請注意, jquery FAQ提到了一個相關但略有不同的問題。
顯而易見的答案是“不要在你的ID中添加。”但是我使用的是腳手架(生成的)grails視圖,因此違反此約定會有很多工作要做。
使用Jquery 1.4.4
這是解決問題的另一種選擇。 希望這可以幫助。
$(function() {
$("select").each(function() {
$(this).attr('selectedIndex', 1);
});
});
謝謝。
1.4.4以上的jQuery版本可以解決這個問題。 考慮更新你的jQuery版本,你的問題應該解決,謝謝。
這是報告的原始錯誤,案例是1.5版本解決了它。
如果由於某種原因必須堅持使用jQuery 1.4.4,請使用selectedIndex
更改選項值。 它工作,即使ID中有一個點。
this.selectedIndex = 1; //Select the second <option>
小提琴: http : //jsfiddle.net/Ltmbd/6/
或者,您可以使用:
this.selectedIndex = $(this).find('option[value=2]').index();
小提琴: http : //jsfiddle.net/Ltmbd/10/
盡管我認為我做得對,但我花了太多時間在這上面。 原來1.4.4版似乎有一個與此相關的bug。 我回到了1.3.2,還有任何一個新的,這個都有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.