下面的脚本应该添加'选择'类到无序列表中的项目,由跨越它的数字表示。
当我有一个包含一个范围和列表的单个分区时它正在工作,但是当我多次重复它时它不工作。
任何人都可以解释为什么并建议我如何重复它?
var selected = parseInt($(".number").html(), 10) - 1;
$('.number').parent(".quantity-select").find("li:eq("+selected+")").addClass("selected");
<div class="quantity-select">
<span class="number">1</span>
<ul id="menu">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
<div class="quantity-select">
<span class="number">3</span>
<ul id="menu">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
答案 0 :(得分:0)
selected
变量只会获取第一个值,因此当您将其应用于多个列表时,您将使用相同的单个值。
您需要一个循环,并在每次迭代中获取selected
值。
我建议循环包装div
元素,如下所示:
$(".quantity-select").each(function () {
var selected = $(".number", this).text() - 1;
$("li:eq("+selected+")", this).addClass("selected");
});
.selected { background: yellow }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="quantity-select">
<span class="number">1</span>
<ul id="menu">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
<div class="quantity-select">
<span class="number">3</span>
<ul id="menu">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>