[英]jQuery addClass() / removeClass() not working
<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页面在这里
可能是因为您忘记添加$(document).ready()
,还请确保已添加jquery.min.js文件
$(document).ready( function () {
$("ul li:eq(0)").removeClass('selected');
$("ul li:eq(1)").addClass('selected');
});
该代码看起来正确,问题必须出在其他地方。 如何进行调试:
查看选择器匹配多少个元素:
console.log($("ul li:eq(1)").length);
如果看到0,则选择器不匹配任何内容。
匹配哪个元素?
console.log($("ul li:eq(1)")[0]);
大多数浏览器都允许检查控制台中的元素。
一个典型的问题是您的代码在元素存在之前就已执行。 在简单的情况下,您只需要在DOM准备好后运行代码:
$(function () {
...DOM is now ready...
});
但是有时,其他脚本会创建元素。 如果您是这种情况,则需要告诉我们您用于构建/操作DOM的框架和脚本。
有关:
$("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');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.