为什么这个 ":lt" 在 jquery 中不起作用?
Why does this ":lt" not work in jquery?
我已经计算出最后一个 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()
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>
我已经计算出最后一个 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()
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>