【问题标题】:get content of td element in spotify template在 spotify 模板中获取 td 元素的内容
【发布时间】:2014-06-18 14:05:59
【问题描述】:

我正在使用 spotify Web API 并下载了他们关于获取用户播放列表的教程。那部分工作得很好。但是我已将轨道 ID 添加到表中,现在我想在单击特定表行时将其存储在变量中。这是 id 部分的 spotifys 代码:

  <script id="playlist-detail-template" type="text/x-handlebars-template">
      <h2>{{name}}</h2>
      <p>{{{description}}}</p>
      {{#if images.length}}
      <img style="background-image:url({{images.0.url}})" class="cover"/>
      {{/if}}
      <table id="clickable">
          <tr>
              <th>Track</th>
              <th>Artist</th>
              <th>Album</th>
              <th>Track URI</th>
          </tr>
      {{#each tracks.items}}
          <tr >
              <td>{{track.name}}</td>
              <td>
                  {{#each track.artists}}
                      {{name}}
                  {{/each}}
              </td>
              <td>{{track.album.name}}</td>
              <td class="trackID">{{track.uri}}</td>
          </tr>
      {{/each}}
      </table>
  </script>

这是我提取 id 的代码:

$( document ).ready(function(){
    $('#clickable tr').click(function() {
        console.log('Function executed');
        var trackID = $(this).find('.trackID').text();
        console.log(trackID);
    });
});

提取代码完美运行,因为我已经在自己制作的桌子上尝试过它。但是当我单击时,绝对没有任何反应。它甚至不记录“功能执行”部分。我猜这是因为它是一些我以前从未见过的脚本模板,但我不知道该怎么做才能修复它。有人有什么想法吗?

【问题讨论】:

  • 你为什么使用点击? $('#clickable tr').click(function() {
  • 因为我希望在单击 tablerow 时存储一些东西。我应该改用什么?
  • 在下面试试我的解决方案,让我知道它是否有效

标签: javascript jquery html spotify


【解决方案1】:

试试这个:

$( document ).ready(function(){
    $('#clickable tr').each(function() {
        console.log('Function executed');
        var trackID = $(this).find('.trackID').html();
        console.log(trackID);
    });
});

【讨论】:

  • 感谢您的回复。然而这并没有奏效。由于某种原因,我仍然没有到达脚本模板中的元素。我也认为你误解了我的意图。当用户单击表格行时,我想将特定轨道的 ID 存储在变量中。使用此解决方案,它会遍历所有轨道。
  • 由于您的模板代码带有“{”而无法对其进行测试,但请尝试在您的代码中将 .val 替换为 .html
  • 是的,但就是这样。这段代码有效,因为我已经在用常规 HTML 编写的不同表格上尝试过它,而不是由 spotify 模板生成,并且它完美地工作。但是,当我在 spotify 模板表上尝试它时,绝对没有任何反应。甚至没有执行 console.log('Function executed') 。所以问题不是我没有得到tr的内容,而是tr在点击时没有反应。
  • “Spotify”模板是Handlebars 模板。找到元素,用 Handlebars 编译模板并注入到页面中。
猜你喜欢
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 2015-05-27
  • 2021-04-20
相关资源
最近更新 更多