我无法修改此HTML:
<li data-corners="false" data-shadow="false" data-iconshadow="true" data-rapperels="div" data-icon="arrow-r" data-iconpos="right" data-theme="c" class="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-btn-up-c">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a class="make-inline ui-link-inherit" href="#">
<h3 class="ui-li-heading"> Attending:
</h3>
</a>
<div class="ui-select">
<a href="#" role="button" id="undefined-button" aria-haspopup="true" aria-owns="undefined-menu" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="arrow-d" data-iconpos="right" data-theme="c" data-inline="true" data-mini="false" class="ui-btn ui-btn-up-c ui-btn-inline ui-shadow ui-btn-corner-all ui-fullsize ui-btn-icon-right ui-disabled" aria-disabled="true">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text"> Maybe </span>
<span class="ui-icon ui-icon-arrow-d ui-icon-shadow"> </span>
</span>
</a>
<select class="attending 310 mobile-selectmenu-disabled ui-state-disabled" data-inline="true" data-native-menu="false" tabindex="-1" disabled="disabled" aria-disabled="true">
<option value="2"> Yes </option>
<option value="0"> No </option>
<option value="1"> Maybe </option>
</select>
</div>
</div>
<span class="ui-icon ui-icon-arrow-r ui-icon-shadow"> </span>
</div>
</li>
select 标记包含class =“attennding”,这对于此特定页面是唯一的,因此我使用它来访问这部分代码。最后,我正在尝试使用class =“ui-icon-arrow-r”访问最后一个 span 标记,因此我可以设置它的样式。我尝试过像这样使用jQuery:
$(".attending").parent().find(".ui-icon-arrow-r").css('background-color','yellow');
它不起作用。当我删除find()部分时,它会选择页面上的所有li元素。所以,我知道那部分是有效的。但是查找部分不是,我无法弄清楚为什么不。如何选择这个元素?
答案 0 :(得分:5)
试试这个:
$(".attending").closest('div.ui-btn-inner').find(".ui-icon-arrow-r").css('background-color','yellow');
答案 1 :(得分:2)
我将如何做到这一点:
在你的li中添加一个类(.my-li)(因为我们想要一个基于类的选择器,而不是基于标记的选择器)
使用jquery parents
方法:
$(".attending").parents('.my-li').find(".ui-icon-arrow-r").css('background-color','yellow')
是的 - 这是你的案例已经解决:http://jsfiddle.net/Xfj5U/
<强>更新强>
抱歉,我搞砸了你无法修改HTML - 我的坏:(
你仍然可以使用像这样的父方法(带标签选择器而不修改html):
$(".attending").parents('li').find(".ui-icon-arrow-r").css('background-color','yellow')
答案 2 :(得分:0)
您需要使用parent()
遍历两次:
$(".attending").parent().parent().find('span:last-child').css( ... )