<ul>
<li class="selected"></li>
<li></li>
<li></li>
</ul>
这是我的HTML。我现在使用的选择器是:
$("ul li:eq(0)").removeClass('selected');
$("ul li:eq(1)").addClass('selected');
问题是我无法在这些元素中添加或删除“选定”类。 html和jquery都很简单,我能找到的很多例子都做了同样的事情,包括官方的jQuery文档。 (脚本在body标签之前加载,如果重要的话)
为什么我不能删除和添加这样的类?
整个html页面here
答案 0 :(得分:6)
可能是因为您忘记添加$(document).ready()
,还要确保添加了jquery.min.js文件
$(document).ready( function () {
$("ul li:eq(0)").removeClass('selected');
$("ul li:eq(1)").addClass('selected');
});
答案 1 :(得分:2)
代码看起来正确,问题必须在其他地方。如何调试:
查看选择器匹配的元素数量:
console.log($("ul li:eq(1)").length);
如果看到0,则选择器与任何内容都不匹配。
哪个元素匹配?
console.log($("ul li:eq(1)")[0]);
大多数浏览器都允许检查控制台中的元素。
典型的问题是您的代码在元素存在之前执行。在简单的情况下,您只需在DOM准备好后运行代码:
$(function () {
...DOM is now ready...
});
但有时,其他脚本会创建元素。如果是这种情况,您需要告诉我们您使用哪些框架和脚本来构建/操作DOM。
相关:
答案 2 :(得分:0)
$("ul li:eq(0)").removeClass('selected');
$("ul li:eq(1)").addClass('selected');
适合我(http://jsfiddle.net/orlando/rhtqA/)
但是你需要等到DOM准备用jquery做什么
$(function () {
$("ul li:eq(0)").removeClass('selected');
$("ul li:eq(1)").addClass('selected');
});