<div>
<div>
<div>Hello</div>
</div>
<div>
<div>Goodbye</div>
</div>
</div>
接着再看下面一个wrapInner()的例子:
用原先div的内容作为新div的class,并将每一个元素包裹起来
HTML 代码:
复制代码 代码如下:
<div>
<div>Hello</div>
<div>Goodbye</div>
</div>
jQuery 代码:
复制代码 代码如下:
$('.inner').wrapInner(function() {
return '<div />';
});
结果:
复制代码 代码如下:
<div>
<div>
<div>Hello</div>
</div>
<div>
<div>Goodbye</div>
</div>
</div>
detach、empty和remove方法
.detach( [selector ] ):从DOM中去掉所有匹配的元素。当需要移走一个元素,不久又将该元素插入DOM时,就需要用到detach方法。
.empty():这个方法不仅移除子元素(和其他后代元素),同样移除元素里的文本。因为,根据说明,元素里任何文本字符串都被看做是该元素的子节点。
.remove( [selector ] ):将元素从DOM中移除,同时移除元素上的事件及 jQuery 数据
empty()的例子:
复制代码 代码如下:
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<script type="text/javascript">
$(".two").empty();//item 1 文本节点被移除,li的小圆点还在,证明li没有被移除
</script>
看下面一个remove()例子:
描述:从DOM中把所有段落删除
HTML 代码:
复制代码 代码如下:
<p>Hello</p> how are <p>you?</p>
jQuery 代码:
复制代码 代码如下:
$("p").remove();
结果:
how are
val()方法
val():获得匹配元素的当前值。
描述:获取文本框中的值
jQuery 代码:
复制代码 代码如下:
$("input").val();
jQuery 代码:
复制代码 代码如下:
$("input").val("hello world!");
each()和map()
each()和map()方法:each返回的是原来的数组,并不会新创建一个数组。而map方法会返回一个
新的数组。如果在没有必要的情况下使用map,则有可能造成内存浪费。
each方法:
定义一个空数组,通过each方法,往数组添加ID值;最后将数组转换成字符串后,alert这个值;
复制代码 代码如下:
$(function(){
var arr = [];
$(":checkbox").each(function(index){
arr.push(this.id);
});
var str = arr.join(",");
alert(str);
})
map方法:
将每个:checkbox执行return this.id;并将这些返回值,自动的保存为jQuery对象,然后用get方法将其转换成原生Javascript数组,再使用join方法转换成字符串,最后alert这个值;
复制代码 代码如下:
$(function(){
var str = $(":checkbox").map(function() {
return this.id;
}).get().join();
alert(str);
})
当有需一个数组的值的时候,用map方法,很方便。
更加详细的讨论,请点击我的另一篇文章:详解jQuery内置函数map()和each()的使用
$.each()