You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery获取点击的影视列表链接中携带的资源ID?

问题原因&解决方法
  • 列表渲染时所有a标签使用了固定重复的id ss,未将影视真实ID绑定到DOM元素上,导致点击时无法读取到对应ID
  • 点击事件代码放在了jQuery的DOM就绪回调$(function(){})外部,存在绑定时机异常的风险
具体修改步骤

1. 修改列表渲染逻辑,绑定影视ID到自定义属性

修改循环拼接a标签的代码,给a标签新增data-movie-id自定义属性存储当前影视的movie.id,移除固定重复的id属性:

$.each(movies, function(i,movie){
  // 新增data-movie-id属性存储真实id,删除固定id="ss"
  $movies.append('<li class="list"><a href="'+ movie._links.self.href+'" data-movie-id="'+ movie.id +'">'+ movie.name +'</a></li>')
})

2. 修改点击事件的ID读取逻辑

点击时通过jQuery的data()方法读取绑定的自定义属性值即可获取到对应影视ID:

$('body').on('click','.list a',function(event){
  event.preventDefault();
  $('#showList').hide();
  $('#show').empty()
  // 读取绑定的影视ID
  let currentId = $(this).data('movie-id');
  console.log(currentId)
  $.ajax({
    method:'GET',
    url:'http://api.tvmaze.com/shows/'+currentId,
    success: function(movies){
      $('#show').append('<h1>'+ movies.name +'</h1>')
    }
  }) 
  $('#show').show(); 
})

3. 调整代码结构(可选但建议)

把整个点击事件的绑定代码放到$(function(){})内部,确保DOM加载完成后再执行绑定逻辑,避免异常。

修改后完整JS代码
$(function (){
  let $movies = $('#showList')
  
  $.ajax({
    method:'GET',
    url:'http://api.tvmaze.com/shows',
    success: function(movies){
      $('#show').hide()
      $('#showList').removeAttr('hidden');
      $.each(movies, function(i,movie){
        $movies.append('<li class="list"><a href="'+ movie._links.self.href+'" data-movie-id="'+ movie.id +'">'+ movie.name +'</a></li>')
      })
    }
  })

  // 点击事件移到DOM就绪回调内部
  $('body').on('click','.list a',function(event){
    event.preventDefault();
    $('#showList').hide();
    $('#show').empty()
    let currentId = $(this).data('movie-id');
    console.log(currentId)
    $.ajax({
      method:'GET',
      url:'http://api.tvmaze.com/shows/'+currentId,
      success: function(movies){
        $('#show').append('<h1>'+ movies.name +'</h1>')
      }
    }) 
    $('#show').show(); 
  })
})

内容的提问来源于stack exchange,提问作者Swayam Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:15:07