我有一个列表可用作选择框,因此点击所选项目会显示一个列表,您可以选择其他项目。
这样可以正常工作但是当我尝试制作两个或更多列表时,所选副本的名称将复制到所有选定的名称(.cloned
范围),其中它应该只是下一个的名称,在jsfiddle示例而不是“Item 1.1Item 2.2”,克隆类的第一个跨度应该只显示“Item 1.1”,下面显示“Item1.1Item2.2”的那个应该是“Item2.2”,因为它是标题/所选项目在第二个列表等等..
我发现问题出在以下代码中:
$(".cloned").text($(".selected").text());
我尝试过以下但不能正常工作:
$(".cloned").text($(".options").closest(".selected").text());
如何才能在其下方列表的.selected
范围内的列表中显示.clone
类?
答案 0 :(得分:2)
closest
选择所选元素中最接近的parent
,而不是最接近的元素,您可以使用parent
和prev
方法。
$('.options li').click(function () {
$(this)
.addClass('selected')
.siblings()
.removeClass('selected')
.parent()
.hide()
.prev('.cloned')
.text(this.textContent || this.innerText);
});
在页面加载中,您可以使用text
的函数:
$(".cloned").text(function(){
return $(this).next().find(".selected").text()
});