为什么这个“:lt”在jquery中不起作用?

时间:2016-07-25 02:08:52

标签: javascript jquery jquery-selectors

我已找出上一个p的索引,但使用$('p:lt(_index)')无效。当我用数字替换它时,它可以工作。为什么呢?

$(function() {
  var _index = $('p:last').index();
  console.log(_index);
  $('p:lt(_index)').css('color', 'red');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <p>1</p>
  <p>12</p>
  <p>123</p>
  <p>1234</p>
  <p>12345</p>
  <p>123456</p>
  <p>1234567</p>
  <p>12345678</p>
  <p>123456789</p>
</div>

1 个答案:

答案 0 :(得分:0)

您使用字符串'_index'作为:lt() pseudo-class的参数,而不是使用变量的值。这一行:

$('p:lt(_index)').css('color','red');

应该是:

$('p:lt(' + _index + ')').css('color','red');

$(function() {
  var _index = $('p:last').index();
  console.log(_index);
  $('p:lt(' + _index + ')').css('color', 'red');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <p>1</p>
  <p>12</p>
  <p>123</p>
  <p>1234</p>
  <p>12345</p>
  <p>123456</p>
  <p>1234567</p>
  <p>12345678</p>
  <p>123456789</p>
</div>