与jquery语法相关,链选择器不起作用

时间:2013-07-04 11:44:07

标签: jquery selector

我猜这会很好用.. 但似乎没有。

代码:

$('#kim2').next().children().on('click', function(){
            $(this).parent().prev().css('background-color', 'gray');
            console.log('hmm');
});
那么如何指定this.next.children?当我想使用这个关键字的回调函数?

HTML:

    <div class="kim2">피의자 전과<br />(택일)</div>
    <div id="c" class="kim2b">
                <div id="c1" class="kim2bb">형사처벌 전력<br />없음</div>
                <div id="c2" class="kim2bb">자격정지 이하 <br />이종전과</div>
                <div id="c3" class="kim2bb">5년 이내 <br />집행유예 2회</div>
                <div id="c4" class="kim2bb">5년 이내 <br />3회이상 벌금</div>
                <div id="c5" class="kim2bb">5년 이내 <br />집행유예 </div>
                <div id="c6" class="kim2bb">3년 이내 <br />집행유예</div>
                <div id="c7" class="kim2bb"><p>이종 누범</p> </div>
                <div id="c8" class="kim2bb"><p>동종 누범</p></div>
    </div>

6 个答案:

答案 0 :(得分:1)

根据你的说法,你没有像kim2b这样的id。你有类。它会像

$('.kim2').next().children('.kim2b').on('click', function(){    
        $(this).css('background-color', 'gray');
        console.log('hmm');
});

答案 1 :(得分:1)

kim2是元素的类还是id?
你应该这样做(对于班级):

    $('.kim2').next().children().on('click', function(){
        $(this).css('background-color', 'gray');
        console.log('hmm');
    });

或者这个(对于id):

    $('#kim2').next().children().on('click', function(){
        $(this).css('background-color', 'gray');
        console.log('hmm');
    });

答案 2 :(得分:1)

通过指定element selector可能对您有用span

$('#kim2').next().children('.kim2bb').on('click', function(){
       $(this).css('background-color', 'gray');
       console.log('hmm');
});

children selector

中使用 kim2bb

或者只是你可以使用它,

$('.kim2bb').on('click', function(){
       $(this).css('background-color', 'gray');
       console.log('hmm');
});

答案 3 :(得分:1)

修改为此

$('.kim2b').children().on('click', function(){
            $(this).css('background-color', 'gray');
            console.log('hmm');
});

答案 4 :(得分:1)

  

“我想定位#kim2,而不是下一个的孩子

好的,您似乎在说当单击kim2元素时,您想要更改下一个元素的所有子元素的颜色。如果是这样,您需要".kim2"按类选择(而非按{id "#kim2"选择),然后:

$('#kim2').on('click', function() {
       $(this).next().children('.kim2bb').css('background-color', 'gray');
       console.log('hmm');
});

答案 5 :(得分:1)

kim2是classname而不是id所以你必须像这样使用类选择器

$('.kim2').next().children().on('click', function(){
    $(this).css('background-color', 'gray');
    console.log('hmm');
});

否则您也可以使用id这样的next元素

$('#c').children().on('click', function(){
    $(this).css('background-color', 'gray');
    console.log('hmm');
});