将字符串对象作为onclick函数中的第二个参数传递

时间:2014-07-14 01:11:11

标签: javascript jquery soundcloud

我知道如何将我的报价放在track.title上,但是对于上帝的爱,我无法弄明白。请帮忙!!问题在于传递track.title。其他一切(track.id,track.artwork_url)工作得很好。也许它是字符串连接问题?我想要做的是传递track.ID,这样我就可以播放音轨和track.title,这样我就可以显示正在播放的曲目的名称。因此,参数是playerPlayNewClick(trackid,trackname)

$("#result_container").append(
            "<div id='result-"+index+"'>"+
              " <a href='#' class='play' id='"+index+
              "' onClick='playerPlayNewClick("+track.id + "," \''+track.title + '\' +  ")'>" +
              "<img class = 'albumartwork' id='artwork-" + index + "' src=" + track.artwork_url + "></a> ");

3 个答案:

答案 0 :(得分:1)

错误似乎就在这条线上;您可以通过语法突出显示track.title

的某些内容不正确
"' onClick='playerPlayNewClick("+track.id + "," \''+track.title + '\' +  ")'>" +

但是,我建议您使用DOM而不是字符串来构建元素;它更不容易出错,jQuery让它变得简单:

var $div = $('<div>', {
  id: 'result-'+ index
});

var $a = $('<a>', {
  href: '#',
  class: 'play',
  id: index,
  click: function() {
    playerPlayNewClick(track.id, track.title)
  }
});

var $img = $('<img>', {
  class: 'albumartwork',
  id: 'artwork-'+ index,
  src: track.artwork_url
});

$('#result_container').append(
  $div.append(
    $a.append(
      $img
    )
  )
);

答案 1 :(得分:0)

我对引号做了一些修改。我知道你有一个track变量,想要传递track.title的值和track.id一样。

$("#result_container").append(
        "<div id='result-"+index+"'>"+
          " <a href='#' class='play' id='"+index+
          "' onClick='playerPlayNewClick("+track.id + ", \'"+track.title + "\')'>" +
          "<img class = 'albumartwork' id='artwork-" + index + "' src=" + track.artwork_url + "></a> ");

答案 2 :(得分:0)

试试这个......注意双重&#34;在track.title周围也是&#39;在track.artwork_url附近。

双重&#34;用一个单一的&#39;来处理任何头衔。在他们中间。

$("#result_container").append(
        "<div id='result-"+index+"'>"+
          " <a href='#' class='play' id='"+index+
          "' onClick='playerPlayNewClick("+ track.id + ", """ + track.title + """)'>" +
          "<img class = 'albumartwork' id='artwork-" + index + "' src='" + track.artwork_url +    "'></a> ");