仅使用此目标选择一个选择器

时间:2014-07-06 04:43:45

标签: jquery

不确定如何解释这一点,但我想仅在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")

1 个答案:

答案 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 })

但我猜这只是一个例子而且你不只是想要一个数字?