使用jQuery修改CSS而不使用ID或类

时间:2011-10-17 09:51:31

标签: javascript jquery html

我有这个HTML代码:

    <span id="one">one</span>
    <div>
        <span>two</span>
    </div>


  <span id="click">click</span>


$("#click").click(function(){
    $(this).css('color', 'red');
})

我希望能够改变

的颜色
<span>two</span>

当我点击“点击”范围但没有使用jQuery添加任何自定义CSS类或id属性时。

3 个答案:

答案 0 :(得分:5)

在您描述的确切情况下,您可以使用此选择器为该范围着色:

$('#one').next('div').find('span').css('color','red');

或者pimvdb指出:

$('#one + div span').css('color','red');

+next()的效果相同,这也消除了使用.find()的麻烦。

答案 1 :(得分:3)

$("#click").click(function(){
    $("div>span").css('color', 'red');
});

http://jsfiddle.net/rwddN/2/

OR

您可以使用:contains

$("#click").click(function(){
    $("span:contains(two)").css('color', 'red');
});

http://jsfiddle.net/rwddN/12/

答案 2 :(得分:2)

如果你的HTML完全如问题所示,那么你可以这样做:

$("#click").click(function(){
    $("#one").next().find("span").css("color", "red");
});

这是一个working example。这可以通过span获取id“one”,然后获取next元素(div)并最终找到span来实现div