jQuery可以';t访问所查找的DOM元素
我有以下HTML元素jQuery可以';t访问所查找的DOM元素,jquery,html,dom,css-selectors,Jquery,Html,Dom,Css Selectors,我有以下HTML元素 <div id="divOrderContainer"> <ul id="ulOrders"> <li id="liAck"> <div id="divViewOrderTitle"></div> <div id="divViewOrderSpacer"></div> <div id="divAcknowledgeItems"></div>
<div id="divOrderContainer">
<ul id="ulOrders">
<li id="liAck">
<div id="divViewOrderTitle"></div>
<div id="divViewOrderSpacer"></div>
<div id="divAcknowledgeItems"></div>
</li>
<li id="liTemp">
<div id="divViewOrderTitle">test</div>
<div id="divViewOrderSpacer"></div>
<div id="divTempItems"></div>
</li>
</ul>
</div>
单击时会提醒我元素id,但是,当我尝试检查是否附加了单击处理程序时,没有任何元素id
单击处理程序代码:
$("#divTempItem > table > tbody > tr").('click', 'td span', function(){
alert($(this).attr("id");
});
我也试过了
$("#tableTemp").on('click', 'tr td span', function(){
alert($(this).attr("id");
});
但是没有用,我似乎无法访问我正在寻找的特定DOM元素。。。访问名称“span”+编号并不能解决我的问题
我是不是错过了什么
这里是输出DOM树的视图;我已经删除了结尾的标签,我想这就足够了
<div id="divOrderContainer">
<ul id="ulOrders">
<li id="liAck"></li>
<li id="liTemp">
<div id="divViewOrderTitle">test</div>
<div id="divViewOrderSpacer"></div>
<div id="divTempItems">
<li>
<table id="tableTemp">
<tbody>
<tr>
<td> a </td>
<td> b </td>
<td> c </td>
<td> d </td>
<td><span id="span8">delete</span></td>
</tr>
</tbody>
</table>
-
测试
-
A.
B
C
D
删除
到底是谁自动创建了“TBODY”元素
谢谢..从您对问题的描述来看,从Ajax部分来看,在绑定事件时,DOM中似乎不存在表,相反,我建议从
domray
绑定到DOM中存在的li
元素:
$('#divTempItems li').on('click', 'td', function(e){
alert(this.id);
});
请注意,HTML无效(粘贴在后一个代码块中),因为li
必须出现在ul
或ol
元素中,并且div
元素不能是ul
或ol
的直接子元素。重复的id
s无效,文档中的id
必须是唯一的
当呈现表格元素时,大多数(如果不是全部)浏览器都会自动创建
tbody
。我记得,虽然规范中说它们是可选的,但浏览器似乎不同意。可能您可以更改这一行:
'<td><span id="span'+posid+'">delete<span></td>' +
您的HTML有多个具有相同ID的对象。这是无效的。你只能在HTML文档中使用一次ID。为什么在这里有
”
:“+b+”
?我已经更新了DOM,我为误传道歉。你说得完全正确,我一直在混合元素,因为HTML不够严格,不能吐出错误,作为一名程序员,你除了一次又一次地调试代码之外别无选择,独自一人查看代码即使不是令人沮丧的任务,也是一项艰巨的任务。。。六羟甲基三聚氰胺六甲醚。。。无论如何,谢谢你为我指出。。。一个引起很多麻烦的简单错误只是为了澄清我的困惑,你说过“div”元素不能是“ul”或“ol”的直接子元素,这是否意味着我不能创建类似“- ”的东西,因为这里的“div”将成为
- 的直接子元素?不,在那个例子中,
将是div
的“直接子对象”,这很好,只是li
不能将div
或ul
作为它的父对象(祖先很好,但父对象是不可能的)。ol
$('#divTempItems li').on('click', 'td', function(e){ alert(this.id); });
'<td><span id="span'+posid+'">delete<span></td>' +
'<td><span id="span'+posid+'" onclick='+'"delete(this)">delete<span></td>' +
function delete(obj){ alert($(obj).arrt('id')); }
- 的直接子元素?不,在那个例子中,