我有一个变量,可以生成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");
}
答案 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);
});