使用jQuery .find定位匹配的LI

时间:2015-11-13 18:16:35

标签: jquery html

我有一个变量,可以生成1到5之间的随机数。

我有一个带有以下结构的无序列表

<ul id="list-items">
    <li id="1"></li>
    <li id="2"></li>
    <li id="3"></li>
    <li id="4"></li>
    <li id="5"></li>
</ul>

我想将一个类附加到与随机生成的变量相关的列表项。到目前为止我有这个 -

var random_variable = 1;

if (("#list-items").find("#"+random_variable+"").length ) {
    $(this).addClass("selected");
}

2 个答案:

答案 0 :(得分:3)

主要问题是this的范围不是条件语句中的元素。在这种情况下,this引用全局window对象,这就是它无效的原因。

您可以删除条件语句并将代码简化为以下内容:

$('#list-items #' + random_variable).addClass("selected");

无需检查元素是否存在,因为如果不存在,则不会添加该类。

答案 1 :(得分:1)

您实际上并不需要使用.find()。由于您将数字用作id,因此只需将其用作JQuery中的选择器即可。当你生成随机元素时,要小心它属于元素的范围,否则什么都不会发生。

$(function(){
var random = 1;
var li = '#'+random;
$(li).addclass(//stuff);
});