Javascript。函数未在中工作。追加
HTMLJavascript。函数未在中工作。追加,javascript,jquery,html,dom,append,Javascript,Jquery,Html,Dom,Append,HTML JS for(变量i=0;i
JS
for(变量i=0;i”+
"" +
“+companyname+”+
“”+地址+“
”+
“”;
}
$(“#1”).bind(“单击”),函数(){
window.location=“salon.html”
});
问题:
所以首先我提取数据并输入3个变量,companyname,picture和address。我有x组这些数据。我想写一份清单。我可以列出,但该功能无法识别id,也无法工作。请帮忙。ty这是因为#salon1
元素是动态创建的。此外,在JQuery中不推荐使用。对于这种情况,您应该使用
更多
工作证明
var arr=[{“CompanyName”:“A”,“Picture”:https://via.placeholder.com/140x100,“地址”:1},{“公司名称”:“B”,“图片”:https://via.placeholder.com/140x100“,“地址:2}];
对于(变量i=0;i”+
“”;
$(“#列表沙龙”)。在(“单击”,“a沙龙”+(i+1)上,函数(){
警报(“重定向…”);
window.location=“salon.html”
});
}
要将事件侦听器添加到动态创建的对象中,您需要使用document.createElement
创建DOM对象。这样,即使在附加实际元素之前,也可以保留该元素
然后,可以像使用查询字符串检索的任何其他对象一样使用它
$(文档).ready(函数(){
让数组=[“a”,“b”,“c”];
for(设i=0;i
#李斯特沙龙酒店{
背景色:#eee;
填充:0.5em;
边缘底部:1米;
}
这是一个示例<JQuery
中的code>.bind()
已弃用。对于这种情况,您应该使用.on()
for(变量i=0;i<5;i++){
$(“#listsalon ul”).append(“”+
“+(i+1)+” ”;
$(“#沙龙”+(i+1))。在(“单击”,功能(){
警报('单击')
});
}
将$(“#沙龙1”)
替换为$(“#沙龙”+(i+1))
因为您的id在单页上应该是唯一的按钮绑定在循环之外。这样不行。我觉得问题出在后面。当我创建此id时,DOM树无法识别它。请交叉检查a
标记。你的身份证生成正确吗?它不工作。我个人觉得问题是来自于附加。与身份证未被识别有关。@Jason似乎在为我工作。我已经用工作证明更新了答案。Tyvm。当我使用Sergio answer(上面的评论)时效果更好。他/她使用document.createElement,我认为这是一个更好的解决方案。我对按钮使用了ur代码,这有助于区分哪些按钮是哪个按钮。谢谢你在这里度过的时光。再一次,ty:)我不建议您使用.bind
,因为它从v3开始就被从jquery中删除了。请使用.on()
我错过了这个解决问题的方法。让我补充一点,这是有效的。Tyvm。为了区分我点击的按钮,我使用了Saharsh提供的代码(下面的注释)。非常感谢你抽出时间来帮助我!不客气。在循环中添加事件侦听器时要小心,因为它们是累积的,最终可能会运行同一个函数数百次。
<div id="listsalon">
<ul data-role="listview" data-inset="true" data-filter="true" >
</ul>
</div>
for (var i = 0; i < arr.length; i++) {
companyname = arr[i].CompanyName;
picture = arr[i].Picture;
address = arr[i].Address;
$("#listsalon ul").append("<li class='ui-corner-all'>" +
"<a id=" + '"' + "salon" + (i + 1) + '"' + "><img src='" + picture +
"'style='height:160px; width:200px;' class='ui-corner-all'>" +
"<h2 style='font-size:13px'>" + companyname + "</h2>" +
"<p style='font-size:10px'>" + address + "</p>" +
"</a></li>");
}
$("#salon1").bind("click", function () {
window.location = "salon.html"
});
$("#listsalon").on("click", "a#salon1", function () {
window.location = "salon.html"
});