0

次のプレイリスト行があります。これらの行はすでにプレイリストに存在します

<div class="total-row">
    <div class="total-title" src="music/04_LCR_Mae_Terra.mp3">04_LCR_Mae_Terra</div>
</div>
<div class="total-row">
    <div class="total-title" src="music/06LCR_Homem_Mal.mp3">06LCR_Homem_Mal</div>
</div>
<div class="total-row">
    <div class="total-title" src="music/06LCR_Homem_Mal.mp3">06LCR_Homem_Mal</div>
</div>

また、プレイリストに曲を追加するためのリンクもあります

<div id="playlinks">
    <li mp3="music/04_LCR_Mae_Terra.mp3" class="add_link"></li>
    <li mp3="music/05_LCR_Jack_Matador.mp3" class="add_link"></li>
</div>

そのため、選択した (クリックした) リンクの mp3 リンクをプレイリストに既に存在するリンクと一致させます (すべての行と一致させます)。既に存在する場合は追加せず、存在しない場合は選択したリンクを追加します。私は次のjqueryコードを使用しています

if i use the below code

$(document).on("click", ".add_link", function(){

    var mp3 = $(this).attr("mp3");
    var foundInPlaylist =
      $(".total-row .total-title[src$='"+ ('/'+mp3) +"']").length;
     if(foundInPlaylist){
        alert("found");
     } else{
       alert("not found");
     }
});

alert(foundInPlaylist ); と書いただけでも、これは機能しません。「0」を警告します。

if i use the second solution

$(".add_link").click(function () {
var newMp3 = $(this).attr("mp3");
var exists = false;
$(".total-row").each(function(){
    var oldmp3 = $(this).children(".total-title").attr("src");
    if(oldmp3.indexOf(newMp3) > 0 )
    {
        exists = true
    }
});
if(exists)
{
    alert("song already exists");
}
else {
        alert("song does not exist");
    }
});

それも私にはうまくいきません

ありがとう

4

2 に答える 2

0

このコードを試してください:

$(".add_link").click(function () {
var newMp3 = $(this).attr("mp3");
var exists = false;
$(".total-row").each(function(){
    var oldmp3 = $(this).children(".total-title").attr("src");
    if(oldmp3.indexOf(newMp3) > -1 )
    {
        exists = true
    }


});
if(exists)
{
    alert("song already exists");
}
else {
        alert("song does not exist");
    }
});

ここに実例があります:

http://jsfiddle.net/YW46k/

于 2013-08-30T08:51:07.857 に答える