首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery 删除节点的有关问题

2012-09-25 
jquery 删除节点的问题ulli1/lili titlea2/lili3/lili4/li/ul$(ul li:eq(1)).re

jquery 删除节点的问题
<ul>
<li>1</li>
<li title="a">2</li>
<li>3</li>
<li>4</li>
 </ul>

$("ul li:eq(1)").remove( ); // 删除了第2个,正常

$("ul li").remove("ul li:eq(1)"); // 结果只剩下第4个li 为毛啊这步

$("ul li").remove("ul li[title='a']"); // 删除了第2个,正常

这是为何?





[解决办法]
你对remove()的参数的理解有问题吧,这样写是不规范的,remove()可以接受一个选择器表达式参数,起到一个过滤对象集合的作用。
$("ul li"),此时匹配的是li元素的集合,对这个集合使用remove()方法:
$("ul li").remove("ul li:eq(1)");,这样其实是找不到作为ul子元素的li元素的,至于想弄明白为什么只剩下最后一个li,要看remove()方法的实现代码了,应该说,你提供的这个参数是预料外的,执行变得不可预期也就不奇怪了。

这样的需求,正确的写法是:

JScript code
$("ul li").remove("ul li:eq(1)"); //错误$("ul li:eq(1)").remove(); //正确//或者$("ul li").eq(1).remove();//或者$("ul").find("li:eq(1)").remove();//或者$("ul").find("li").eq(1).remove(); 

热点排行