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

Javascript 在jQuery中查找在ID已知的元素之前发生的特定类的元素,javascript,jquery,html,Javascript,Jquery,Html,我有下面一段HTML。使用jQuery很容易找到具有给定ID的元素(“示例中的ctl00\u JQueryContent\u Phenotore\u i1\u ItemLabel”)。然后,我的任务是在类“rtUnchecked”之前更改跨度。我还需要删除rtUnchecked并用其他CSS类替换它 <span class="rtSp"></span><span class="rtPlus"></span> <span class="rtUn

我有下面一段HTML。使用jQuery很容易找到具有给定ID的元素(“示例中的ctl00\u JQueryContent\u Phenotore\u i1\u ItemLabel”)。然后,我的任务是在类“rtUnchecked”之前更改跨度。我还需要删除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,因为页面上还检查了类rtuncheck的其他跨度。我如何为JQuery编写一个选择器来帮助我找到这个元素

你试过了吗

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

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

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

尝试以下操作:

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

您还可以测试它:

$('#ctl00_JQueryContent_PhenoTree_i1_ItemLabel')
 .parents().find('.rtUnchecked').removeClass('rtUnchecked').addClass('new-classname');
您还可以测试它:

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