仅复制具有所选类的下一个列表中的文本

时间:2013-02-19 13:51:54

标签: jquery

我有一个列表可用作选择框,因此点击所选项目会显示一个列表,您可以选择其他项目。

这样可以正常工作但是当我尝试制作两个或更多列表时,所选副本的名称将复制到所有选定的名称(.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类?

演示:http://jsfiddle.net/9BR9h/1/

1 个答案:

答案 0 :(得分:2)

closest选择所选元素中最接近的parent,而不是最接近的元素,您可以使用parentprev方法。

$('.options li').click(function () {
    $(this)
          .addClass('selected')
          .siblings()
          .removeClass('selected')
          .parent()
          .hide()
          .prev('.cloned')
          .text(this.textContent || this.innerText);
});

http://jsfiddle.net/B2nZH/

在页面加载中,您可以使用text的函数:

$(".cloned").text(function(){
     return $(this).next().find(".selected").text()
});

http://jsfiddle.net/zKfX2/

相关问题