如何找到一个HTML元素然后删除它?

Viv*_*vek 5 javascript jquery

可能重复:
添加和删​​除类时遇到奇怪的问题.

假设我有以下html -

     <div class="div_portlet ui-widget ui-widget-content ui-corner-all defaultcontentbg portlet-width default_border default_border_color portlet_space">
     <div class="div_header headertitle align_center defaultheadercolor portlet-header-left-padding default_bottom_border default_border_color">
     <span class="ui-icon ui-icon-minusthick"></span>
      Order Header Level Information</div>
      <div id="ordrHdrLvnInfn" class="div_content portlet-width">
Run Code Online (Sandbox Code Playgroud)

我要做的是,检查是否ui-icon ui-icon-minusthick存在与类的跨度,如果它存在,首先删除它,然后添加它.我尝试了以下方式,但它不起作用

javascript函数::

jQuery.fn.initPortlet = function( parent_component ,header , component ){
        this.find(header).find('span.ui-icon').remove();

        this.addClass("ui-widget ui-widget-content ui-corner-all")
            .find(header)           
            .addClass("headertitle")
            .addClass("align_center")
            .addClass("defaultheadercolor")
            .end()
            .prepend('<span class="ui-icon ui-icon-minusthick"></span>')
            .find(component);
                   }
Run Code Online (Sandbox Code Playgroud)

我用这种方式调用这个函数..

$('.div_portlet').initPortlet('.div_portlet','.div_header','.div_content')
Run Code Online (Sandbox Code Playgroud)

它应首先删除跨度然后添加它,但如果我多次调用此函数,那么它只是继续添加该跨度.
我怎么能这样做或有更好的方法来做到这一点.谢谢!!!!

Chr*_*ris 3

您将在 div_header 之外添加您的范围。您的 .end() 意味着您不再使用标头过滤器,因此跨度将添加到 ui_widget 的开头...

http://jsfiddle.net/Qjrcg/是你的代码的小提琴。如果你看一下,我在前缀后面有一个注释掉的 .end() 。如果您取消注释并注释掉前面的一个,那么跨度(我将测试文本放入其中以使其更容易查看)只会创建一次。

希望这可以解决你的问题。