不确定如何解释这一点,但我想仅在this
内定位选择器。
所以我说我有
<ul>
<li class=a></li>
<li class=b></li>
<li class=c></li>
</ul>
我执行此操作:
$("li").each(function(i,v){
$(".a",$(this)).append("1");
$(".b",$(this)).append("2");
$(".c",$(this)).append("3");
});
不幸的是,这并不像预期的那样有效,但我确信它有办法。
我尝试过使用if hasClass("a")
等。但如果可能的话,我想避免这条路线。有什么建议吗?
我也知道我可以$("li:eq("+i+").a")
作为选择器,但我想在这里使用this
。
不幸的是,这不起作用:$(this).find(".a")
答案 0 :(得分:1)
你想做更像这样的事情
$("li").each(function(i,v){
if ( $(this).hasClass('a') ) $(this).text("1");
if ( $(this).hasClass('b') ) $(this).text("2");
if ( $(this).hasClass('c') ) $(this).text("3");
});
这是具有类的LI,所以你必须检查它,现在你正在使用上下文选择器,它在LI中搜索具有该类的元素。
另请注意,如果您没有附加元素但只是设置元素文字,请使用text()
作为最后的旁注,您的示例也可以像这样完成
$("li").text(function(i) { return i+1 })
但我猜这只是一个例子而且你不只是想要一个数字?