在使用Jquery完成AJAX调用后,我试图遍历表。但我无法循环。 我的HTML看起来像这样:
<table id="planyourwork" class="data-view plan-internal displayTable">
<thead>All Headers</thead>
<tbody>
<tr class="odd">
<td class="invisible"></td>
....
....
<td class="cell-status"></td>
</tr>
<tr class="odd">
<td class="invisible"></td>
....
....
<td class="cell-status"></td>
</tr>
<tr class="odd">
<td class="invisible"></td>
....
....
<td class="cell-status"></td>
</tr>
<tbody>
在调用AJAX后的JS文件中
$('.data-view > tbody > tr > td.cell-status').each(function() {
trying to add tool tip
}
当我调试时,我看到Loop没有通过。调试器在数据视图停止,但不循环。
请帮我解决这个问题
以下是整个On Click事件
filterBtn.click(function() {
loadData();
$('#planyourworktd.cell-status').each(function() {
var typeCell = $(this);
var tooltip = typeCell.parent().find('td.fullNotes').html();
alert("tooltip");
typeCell.attr('title', tooltip);
typeCell.tooltip({track: true,show: 100});
});
return false;
});
// Load the request and planner data
function loadData() {
$.ajax({
type: 'post',
url: url,
data: data,
cache: false,
success: function(html) {
initResults();
enableButtons();
},
error: function(jqXHR, textStatus, errorThrown) {
filterBtn.removeClass('invisible');
},
async: true
});
}
并且DOM结构非常复杂,当我在Fiddle中运行它时它可以工作但不在页面上。我不知道为什么?谢谢大家帮我解决这个问题。 请注意:语法检查可能是拼写错误,因为我正在删除生产代码,对不起。
答案 0 :(得分:1)
你的html javascript中有一些错误,但我无法确定是否是你在这里输入的时候。
反正
您的javascript未正确关闭,以下是它的外观
$(&#39; .data-view&gt; tbody&gt; tr&gt; td.cell-status&#39;)。each(function(){ 的console.log(本); });
注意额外的&#39;);&#39;最后。
现在,当我进行这些更改时,输出正常。
答案 1 :(得分:0)
我解决了这个问题。它非常悲伤&#34;,我在这里错过了几点。我正在使用struts 2和AJAX调用。当一个AJAX调用完成后,我的事件被调用,但是当它被调用时,数据没有被加载。原因是当进行AJAX调用时,数据被填充为&#34; tile&#34;它自己运行。填充其余元素并且并行加载数据。更改页面的位置解决了问题。谢谢你的帮助。