繁体   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