我想查找所有外部标记,并按顺序设置每个id
<p><span/></p>
<table>
<tr>
<td></td>
</tr>
</table>
我想要
<p id = "1"><span/></p>
<table id = "2">
<tr>
<td></td>
</tr>
</table>
但是当我使用find(“*”)时,会找到p ,span,table,tr,td
,
我的js是
$("body").find("*").each(function (index) {
$(this).attr("id",index);
});
结果是
<p id = "1"><span id = "2"/></p>
<table id = "3">
<tr id = "4">
<td id = "5"></td>
</tr>
</table>
如何解决?
答案 0 :(得分:0)
您需要的是仅定位body元素的子元素,而不是所有后代,因此请使用.children()
$("body").children().attr('id', function(idx) {
return idx
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p><span>1</span></p>
<table>
<tr>
<td>2</td>
</tr>
</table>
如果你只想找不到孩子,那么
$("body").find(' > *').attr('id', function(idx) {
return idx
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p><span>1</span></p>
<table>
<tr>
<td>2</td>
</tr>
</table>