JQuery DOM 包裹节点

如果要将某个节点用其他标记包裹起来,JQuery提供了相应的方法,即wrap(),该方法对于需要在文档中插入额外的结构化标记非常有用,而且它不会破坏原始文档的语义。


wrap()

$("#li_1").wrap("<strong></strong>");

得到的结果如下:

<strong>
	<li id="li_1" title="PHP魔法">简单易懂的PHP魔法</li>
</strong>

包裹节点操作还有其他两个方法,即wrapAll()和wrapInner()。

wrapAll()方法

该方法会将所有匹配的元素用一个元素来包裹。它不同于wrap()方法,wrap()方法是将所有的元素进行单独的包裹。JQuery代码如下:

$(".li_2").wrapAll("<strong></strong>");

使用wrapAll()方法包裹后的HTML是这样的:

<strong>
	<li class="li_2" title="C魔法">简单易懂的C魔法</li>
	<li class="li_2" title="JavaScript魔法">简单易懂的JavaScript魔法</li>
</strong>

wrapInner()方法

该方法将每一个匹配的元素的子内容(包括文本节点)用其他结构化的标记包裹起来。

$("#li_4").wrapInner("<strong></strong>");

运行代码后,发现<strong>标签内的内容被一对<li>标签包裹了,结果如下:

<li id="li_4" title="JQuery">
	<strong>简单易懂的JQuery魔法</strong>
</li>

本例的JQuery代码如下:

<script type="text/javascript">
//<![CDATA[
$(function(){
	$("#btn_1").click(function(){
		//用<strong>元素把<li>元素包裹起来
		$("#li_1").wrap("<strong></strong>");
	})
	$("#btn_2").click(function(){
		$(".li_2").wrapAll("<strong></strong>");
	})
	$("#btn_3").click(function(){
		$("#li_4").wrapInner("<strong></strong>");
	})
});
//]]>
</script>


zgguan.com(it学习网) — 提供最好的 XHTML教程DIV+CSS教程JavaScript教程PHP教程ThinkPHP教程