可能重复:
添加和删除类时遇到奇怪的问题.
假设我有以下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)
它应首先删除跨度然后添加它,但如果我多次调用此函数,那么它只是继续添加该跨度.
我怎么能这样做或有更好的方法来做到这一点.谢谢!!!!
您将在 div_header 之外添加您的范围。您的 .end() 意味着您不再使用标头过滤器,因此跨度将添加到 ui_widget 的开头...
http://jsfiddle.net/Qjrcg/是你的代码的小提琴。如果你看一下,我在前缀后面有一个注释掉的 .end() 。如果您取消注释并注释掉前面的一个,那么跨度(我将测试文本放入其中以使其更容易查看)只会创建一次。
希望这可以解决你的问题。
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |