如何修改renderButtons函数实现按钮按自身标签调用Giphy API搜索?
解决按钮搜索自身标签内容的问题
你精准命中了问题核心——data-bands属性被硬编码成固定值'Misfits',导致所有按钮点击后都只会搜索这个内容。咱们只需要把这个固定值替换成循环中当前遍历到的乐队名称即可,下面是修改后的完整代码:
修改后的renderButtons函数
function renderButtons() { $("#band-buttons").empty(); for (var i = 0; i < topics.length; i++) { // 不再硬写data-bands属性,先创建基础按钮 var a = $("<button>"); a.addClass("band"); a.attr("data-name", topics[i]); // 动态设置data-bands为当前循环的乐队名称,和按钮文本保持一致 a.attr("data-bands", topics[i]); a.text(topics[i]); $("#band-buttons").append(a); console.log(a); console.log(i); } }
关键修改说明:
- 移除了按钮创建时硬编码的
data-bands='Misfits',改为通过attr()方法动态绑定topics[i] - 现在每个按钮的
data-bands属性值都会和它显示的文本完全匹配,点击时就能获取到对应乐队名称执行搜索逻辑了
如果你的搜索流程其实只需要一个标识属性,也可以把data-name和data-bands合并(比如只保留data-bands),减少冗余属性,只要确保点击事件中获取的属性值正确就行。
内容的提问来源于stack exchange,提问作者Oblivious290
相关产品推荐
相关产品推荐

