簡體   English   中英

使用'。'對DOM元素進行Jquery操作 在ID中沒有任何效果

[英]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版本解決了它。

http://bugs.jquery.com/ticket/8021

如果由於某種原因必須堅持使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM