jquery中使用:has()可以很方便的查找一些元素,但要注意的是这个方法是针对所有后代元素的,并非直接后代元素。
举例说明一下,有如下HTML代码:
<table class="lsTab" style="display:none;">
<tr>
<td>
<table cellpadding="0" cellspacing="0">
<tr>
<td> <img/> <span class="fileName"></span></td>
<td class="jdtTd"><div class="jdt1"><div class="jdt2"></div></div></td>
<td> <span class="djNum">50%</span></td>
<td> <a class="dele_upfile">删除</a></td>
<td> <a class="yl_upfile">预览</a></td>
</tr>
</table>
</td>
<td><p class="upload_errTxt"></p></td>
</tr>
</table>
想要查找绿色部分,如果写成$("table.lsTab").find("td:has(span.fileName)")则是错误的,因为此时找到的对象会有两个,一个是绿色部分的TD,另一个是蓝色部分的TD,可以通过$("table.lsTab").find("span.fileName").parent()来找到我们的目标元素。
举例说明一下,有如下HTML代码:
<table class="lsTab" style="display:none;">
<tr>
<td>
<table cellpadding="0" cellspacing="0">
<tr>
<td> <img/> <span class="fileName"></span></td>
<td class="jdtTd"><div class="jdt1"><div class="jdt2"></div></div></td>
<td> <span class="djNum">50%</span></td>
<td> <a class="dele_upfile">删除</a></td>
<td> <a class="yl_upfile">预览</a></td>
</tr>
</table>
</td>
<td><p class="upload_errTxt"></p></td>
</tr>
</table>
想要查找绿色部分,如果写成$("table.lsTab").find("td:has(span.fileName)")则是错误的,因为此时找到的对象会有两个,一个是绿色部分的TD,另一个是蓝色部分的TD,可以通过$("table.lsTab").find("span.fileName").parent()来找到我们的目标元素。