面对jquery的切换方法中的问题

时间:2011-05-25 11:57:54

标签: jquery

HI,

我有以下html

    <div id="LineInfoHeader" class="div_header_inner headertitle align_center defaultheadercolor portlet-header-left-padding default_bottom_border default_border_color"><span class="ui-icon ui-icon-minusthick"></span>Line Item Information</div>
**Edit**

    <div class="div_content_inner" id="Order_header"></div>

我正在尝试切换span类和Order_header div 我使用以下代码:

$(".div_header_inner.ui-icon").toggleClass("ui-icon-minusthick").toggleClass("ui-icon-plusthick").toggle();
}

我不知道为什么它不起作用。 请告诉我哪里出错了。 提前致谢。 You can see the problem here

1 个答案:

答案 0 :(得分:6)

您的选择器已关闭,它正在寻找两个.div_header_inner .ui-icon的元素,而不是一个在另一个内部。为此,您需要一个中间的空格(the descendant selector),如:

$(".div_header_inner .ui-icon").toggleClass("ui-icon-minusthick").toggleClass("ui-icon-plusthick").toggle();

此外,.toggleClass()可以使用多个类(空格分隔),因此您可以将其缩短为:

$(".div_header_inner .ui-icon").toggleClass("ui-icon-minusthick ui-icon-plusthick").toggle();

You can try that version here。但是,我不能立即清楚你最后想要.toggle()哪个元素,如果<div>你需要改变它like this

$(".div_header_inner").toggle().find(".ui-icon").toggleClass("ui-icon-minusthick ui-icon-plusthick");

or this

$(".div_header_inner .ui-icon").toggleClass("ui-icon-minusthick ui-icon-plusthick").parent().toggle();