如何根据属性值删除DOM元素

时间:2011-04-25 18:52:46

标签: javascript jquery

我有来自Sharepoint的HTML代码,我想知道是否可以仅根据“text”属性删除这个特定的DOM元素?

<ie:menuitem menugroupid="200" text="new docs view" onmenuclick="window.location = '/some link/';" type="option" id="zz36_View1"></ie:menuitem>

使用Firebug我只需右键单击上面的行,然后单击删除元素。我如何使用Javascript w / Jquery做到这一点?

以下是上述行的来源:

<span style="display:none">
    <menu compactmode="true" id="zz34_ViewSelectorMenu" type="ServerMenu">
        <ie:menuitem menugroupid="100" text="All Documents" onmenuclick="window.location = '/some link/';" type="option" id="zz35_DefaultView"></ie:menuitem>
        <ie:menuitem menugroupid="200" text="new docs view" onmenuclick="window.location = '/some link/';" type="option" id="zz36_View1"></ie:menuitem>
        <ie:menuitem menugroupid="300" text="Explorer View" onmenuclick="window.location = '/some link/';" type="option" id="zz37_View2"></ie:menuitem>
    </menu>
</span>

我尝试过类似的事情:

<script language="Javascript" src="http://code.jquery.com/jquery-1.5.2.min.js"></script>

<script language="Javascript">
    $(document).ready(function() {
        $('ie:menuitem[text*="new docs view"]').remove();
    });
</script>

但它确实不起作用。

5 个答案:

答案 0 :(得分:4)

尝试

$('ie\\:menuitem[text*="new docs view"]').remove();
//or
$('menuitem[text*="new docs view"]').remove();

因为我真的不知道jQuery如何与名称空间一起工作,所以只是猜测。

答案 1 :(得分:0)

$('ie:menuitem[text*="new docs view"]')

ie:menuitem不是标准的HTML元素。因此,jQuery可能会将:menuitem解释为selector。这可能是你问题的根源。

答案 2 :(得分:0)

$('ie\\:menuitem[text*="new docs view"]').remove()可能有用。

答案 3 :(得分:0)

这就是你能做的。假设你的menu是第一个孩子:(肮脏的方式)

$("span").children(1).children().each(function(){
    if($(this).attr("text") == "new docs view"){
        $(this).remove();
        return;
    }
});

Jsfiddle:http://jsfiddle.net/naveed_ahmad/wdTwL/

答案 4 :(得分:0)

您必须转义选择器中的:

$("ie\\:menuitem[type='option'][text='All Documents']").remove();

显示在这里工作:http://jsfiddle.net/Codemonkey/tduVq/1/