我需要剪切并粘贴包含所有标签的文本,从主跨距到每个p标签中的标签元素。
<form>
<p>
<input...>
<label...>
<span>Will trip the left<span>engin<span>e genge</span>rat</span>or only and connect external power to the left generator bus.
</span>
</p>
<p>
<input ...>
<label></label><span>Will trip the left<span>engin<span>e genge</span>rat</span>or only and connect external power to the left generator bus.<br></span>
</p>
<input ...>
</form>
我使用了这个命令:
$(document).find('form p').each( function(){
$(this).find('span').detach().appendTo($(this).find('label'))
});
但我在该元素之外得到了其他跨度。我做错了什么?
我需要这样的东西:
<form>
<p>
<input...>
<label>
<span>Will trip the left<span>engin<span>e genge</span>rat</span>or only and connect external power to the left generator bus.
</span>
</label>
</p>
</form>
答案 0 :(得分:0)
您需要使用children方法而不是find方法。 .children()方法与.find()的不同之处在于.children()只沿DOM树向下移动一个级别,而.find()可以遍历多个级别以选择后代元素(孙子等)。 (见https://api.jquery.com/children/)
$(document).find('form p').each(function((){
$(this).children('span').appendTo($(this).children('label'))
});