2

我有几个 li 的:

<ul>
    <li class="one"></li>
    <li class="one"></li>
    <li class="two"></li>
</ul>

我试图只显示那些有 class="one"

我试过类似的东西:

var li = $('li');

    li.each(function(index, data)
    {
        var liClass = li.attr('class');

        switch(liClass)
        {
        case 'one':
              console.log(data);
          break;
        default:
            console.log('no match');
          break;
        }
    });

在这种情况下console.log(data);应该返回:

<li class="one"></li>
<li class="one"></li>

但它会全部返回

有任何想法吗?

谢谢

4

4 回答 4

2

您可以使用类选择器通过 jQuery 获取具有给定类的所有元素:

$(".one")
于 2012-11-07T08:06:46.930 回答
2
var li = $('li');

li.each(function(index, data) {
    if($(this).hasClass('one')) {
          console.log(data);
    }
});
于 2012-11-07T08:07:25.660 回答
2
var li = $('li');
    li.each(function(index, data)
    {
var liClass = li.attr('class'); 
// You're selecting li which is the $('li'), and not element inside each(), use $(this) instead.
...

您选择的是 li $('li'),而不是里面的元素each(),请$(this)改用

利用var liClass = $(this).attr('class');

这是一个小提琴

于 2012-11-07T08:13:50.197 回答
1

如果我理解这个问题,这应该很容易使用 jQuery 吗?

console.log($('li.one'))
于 2012-11-07T08:06:30.110 回答