如何使用jQuery

时间:2016-11-27 02:07:30

标签: jquery

var id值动态变化。 如何将class='current'添加到具有相同文本的列表中。例如,当id=1时,

<li class="current"><a href="http://localhost/myweb/index.php/blog/index">1</a></li>

我尝试了这个但不行。

<ul class='pagination'>
<li>&lt;</li>
<li><a href="http://localhost/myweb/index.php/blog/index">1</a></li>
<li><a href="http://localhost/myweb/index.php/blog/index/2">2</a></li>
<li><a href="http://localhost/myweb/index.php/blog/index/3">3</a></li>
<li><a href="http://localhost/myweb/index.php/blog/index/2">&gt;</a></li>
</ul>

<script>
$(window).load(function() {
    var id = 1;
    $('.pagination ul li').each(function(){
        if($this.val() == id)
        {
            $this.addClass("current");
        }
    });

});
</script>

1 个答案:

答案 0 :(得分:1)

您有以下三个问题

  1. 您的选择器为$('.pagination ul li'),这是错误的 它应该是$('.pagination li')$('ul.pagination li')
  2. 您在两个地方使用$this代替$(this)
  3. 然后要比较该值,您应该使用$(this).find('a').text() 而不是$this.val(),因为你需要在里面找到文本 anchor标记
  4. 工作样本

    &#13;
    &#13;
    .current {
      background-color: green;
    }
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <ul class='pagination'>
    <li></li>
    <li><a href="http://localhost/myweb/index.php/blog/index">1</a></li>
    <li><a href="http://localhost/myweb/index.php/blog/index/2">2</a></li>
    <li><a href="http://localhost/myweb/index.php/blog/index/3">3</a></li>
    <li><a href="http://localhost/myweb/index.php/blog/index/4">4</a></li>
    </ul>
    
    <script>
    $(window).load(function() {
        var id = 1;
        $('ul.pagination li').each(function(){
            if($(this).find('a').text() == id)
            {
                $(this).addClass("current");
            }
        });
    
    });
    </script>
    &#13;
    &#13;
    &#13;