1
<ul class="playlist">
    <li class="track_name">$name1
        <ul>
            <li class="play"><a class="play_link" href="$url">play</a></li>
            <li class="download"><a href="download.php?id=$url">download</a></li>
        </ul>
    </li>
    <li> ... more tracks here
</ul>
<ul class="playlist">
... more playlists here

给定一个动态生成的无序列嵌套列表,<li class="play">用 $name1 替换文本“play”的最简单方法是什么?

我做了以下事情:

var val = $('.play').closest('.track_name').clone().children().remove().end().text();
$('.play_link').text(val);

这给了我所有 track_names,但无法弄清楚如何获得相关的轨道名称。

蒂亚!

4

2 回答 2

2

您可以将一个函数传递给.text(),这将允许您设置所有.play元素的文本:

$('.play a').text(function(i, v) {
    return $(this).closest('.track_name').clone().children().remove().end().text();
});

代码示例

于 2012-11-10T02:37:03.090 回答
0

只需将选定的设置为selected点击类,然后使用该类来获取选定的类:(或做其他任何事情)

就像是:

<li class="track_name">
    <span class="text">$name1</span>
    <ul>
        <li class="play"><a class="play_link" href="$url">play</a></li>
        <li class="download"><a href="download.php?id=$url">download</a></li>
    </ul>
</li>

$(".track_name").on("click", function(e) {
    $(".selected").removeClass("selected");
    $(this).addClass("selected")
        .find('.play_link').text($(".selected .text").text());
});
于 2012-11-10T02:56:04.677 回答