在下面的代码中,如何根据超链接的值删除li?
<ul class="clean menu sub">
<li>
<a cat="tech" class="sec_net_1" href="javascript:void(0);" name="&lid=choose_category_internet_fios" rel="1">FiOS Internet</a>
</li>
<li>
<a cat="tech" class="sec_net_1" href="javascript:void(0);" name="&lid=choose_category_internet_hsi" rel="1">High Speed Internet</a>
</li>
<li class="last" style="margin-bottom:7px;">
<a cat="tech" class="sec_net_1" href="javascript:void(0);" name="&lid=choose_category_internet_dialup" rel="1">Dial-up</a>
</li>
</ul>我在一个变量中获取超链接的值。现在,根据该值,其他2个li应该被删除。我们如何使用mootools来实现这一点?
现在,如果我得到flag=“拨号”,其他2个li应该被删除,代码应该如下所示:
<ul class="clean menu sub">
<li class="last" style="margin-bottom:7px;">
<a cat="tech" class="sec_net_1" href="javascript:void(0);" name="&lid=choose_category_internet_dialup" rel="1">Dial-up</a>
</li>
</ul>这里我从服务器获取Flag的值。
发布于 2013-03-12 14:47:12
如果您可以利用链接名称,则解决方案只需一行:
http://jsfiddle.net/5axJc/
$$("ul.menu :not(a[name='&li=choose_category_internet_dialup']) !> li").destroy()在一个集合上调用destroy (我会在产品代码中使用document.getElements )会在其中的每个元素上调用你的方法。
在选择表达式中有几个深奥的选择符,也许它值得更深入的解释:
根据与值匹配的name属性选择链接!> is a parent selector
因此,您可以将选择器读作:
选择菜单ul中的所有li,它们是锚点的父亲,而锚点的名称不是您想要的值。
编辑
要只选择作为搜索到的li的父级的li,只需使用ul.sub a[name='&lid=choose_category_internet_fios'] !> li选择它,然后使用~ li选择所有同级。结果是这样的。
$$("ul.sub a[name='&lid=choose_category_internet_fios'] !> li ~ li").dispose()注意,我们已经去掉了:not()选择器。对我来说,这是一种更线性的完成任务的方式。
https://stackoverflow.com/questions/15353859
复制相似问题