我试图.each()
在一个函数中触发一个循环,该循环将链接附加到以前创建的 div。我的初始数据取自的 HTML:
<tr>
<td><a onclick="addLinkToStage(181,false); return false;" href="#">[Add]</a></td>
</tr>
<tr>
<td>
<div email="bob@gmail.com" task="104" class="cases_holder_181"><b>Name:</b> Testing1</div>
<div email="a@a.com" task="104" class="cases_holder_181"><b>Name:</b> Testing1</div>
<div email="c@c.com" task="104" class="cases_holder_181"><b>Name:</b> Testing1</div>
<div email="bob@gmail.com" task="105" class="cases_holder_181"><b>Name:</b>Testing2</div>
<div email="a@a.com" task="105" class="cases_holder_181"><b>Name:</b> Testing2</div>
<div email="bob@gmail.com" task="106" class="cases_holder_181"><b>Name:</b> Testing3</div>
<div email="a@a.com" task="106" class="cases_holder_181"><b>Name:</b> Testing3</div>
<div email="bob@gmail.com" task="107" class="cases_holder_181"><b>Name:</b> Testing4</div>
<div email="a@a.com" task="107" class="cases_holder_181"><b>Name:</b> Testing4</div>
</td>
</tr>
我的JS如下:
var task_check = [];
var id_check = [];
function addLinkToStage(id,status){
$(".cases_holder_"+id).each(function(){
var task = $(this).attr("task")
if(task_check.indexOf(task) == -1){
task_check.push(task);
addStage(task,status);
}
else{
var div_html = '<div class="task_'+task+'">'+
'<a href="task'+task+'">Click</a>'+
'</div>';
$('#addlink'+task).append(div_html);
}
})
}
function addStage(id,status){
if(id_check.indexOf(id) == -1){
id_check.push(id);
$.getJSON(fullurl, function(json) {
$.each(json, function(i,d) {
output = '<div>Link</div>'+
'<div>'+d.Name+'</div>'+
'<div class="add" id="addlink'+id+'"></div>';
});
$('#stage').append(output);
}
}
如上所示,addLinkToStage
检查一组具有唯一 ID 的类,并根据属性“任务”中的值触发函数addStage
。如果该addStage
功能已被相同的“任务”值触发,则它会附加一个链接。
我的问题是它似乎跳过了整个 else 块,但是如果我要添加一个 alert("Test"); 它会在警报框中的每次确认单击时附加链接。
谁能帮我理解它为什么会这样?以及解决它的可能解决方案?
编辑:我还注意到,尽管添加了 alert() 它将工作,因为它假设着火,它不会在 chrome 上工作。