在jQuery中查找在具有已知ID的元素之前发生的特定类的元素

时间:2013-09-27 12:38:47

标签: javascript jquery html

我有以下HTML。使用jQuery很容易找到具有给定ID的元素(示例中为“ctl00_JQueryContent_PhenoTree_i1_ItemLabel”)。我的任务是在它具有“rtUnchecked”类之前改变SPAN。我还需要删除rtUnchecked并将其替换为其他CSS类。

<span class="rtSp"></span><span class="rtPlus"></span>
<span class="rtUnchecked"></span><div class="rtIn">
            <div class="rtTemplate">
                <table> <tbody><tr><td>
 <span id="ctl00_JQueryContent_PhenoTree_i1_ItemLabel">
 (...)

我显然不能使用类sejector,因为页面上还有其他类rtUnchecked的SPAN。我如何为JQuery编写一个选择器来帮助我找到这个元素?

3 个答案:

答案 0 :(得分:1)

你试过吗?

//select element
var $elem = $('#ctl00_JQueryContent_PhenoTree_i1_ItemLabel')
            .prev('span.rtUnchecked')
            .last();
//switch class
$elem.removeClass('rtUnchecked').addClass('otherClass');

答案 1 :(得分:0)

试试这个:

 $('#ctl00_JQueryContent_PhenoTree_i1_ItemLabel')
 .parents().find('.rtUnchecked').last().css({'color':'red', 'border': '1px solid red'});

演示:http://jsfiddle.net/wCBhT/

答案 2 :(得分:0)

你也可以测试它:

$('#ctl00_JQueryContent_PhenoTree_i1_ItemLabel')
 .parents().find('.rtUnchecked').removeClass('rtUnchecked').addClass('new-classname');