1

我有一个用作选择框的列表,因此通过单击所选项目会显示一个列表,您可以选择另一个项目。

这很好用,但是当我尝试创建两个或更多列表时,选定的名称复制到所有选定的名称(.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/

4

1 回答 1

2

closest选择离parent被选元素最近的,不是最近的元素,可以用parentandprev方法。

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

http://jsfiddle.net/B2nZH/

在页面加载时,您可以使用text's 功能:

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

http://jsfiddle.net/zKfX2/

于 2013-02-19T13:58:28.847 回答