为什么“:lt;在jquery中不起作用

Why does this ":lt" not work in jquery?

本文关键字:jquery 不起作用 lt 为什么      更新时间:2023-09-26

我已经计算出最后一个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>

您使用字符串'_index'作为:lt()伪类的参数,而不是使用变量的值。线路:

$('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>