[英]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.