jQuery使用类在元素上方获取最接近的div

时间:2019-02-19 10:16:30

标签: jquery

我正在遍历所有h1元素,并在类box-body中寻找最接近的div

$('h1').each(function(index, element) {
    if($(this).attr("id")) {
        var id = $(this).attr("id");
        $( '#' + id ).text( data[id] );

        $( this ).closest( "box-body" ).css( "background-color", "red" );
    }
});

我尝试使用$( this ).closest( "box-body" )并设置CSS,但未设置CSS。

h1标签在HTML中的用法如下,这就是它循环通过的内容以及box-body所在的位置

<section class="col-md-3">
    <div class="box no-border">
    <div class="box-body">
        <h1 id="rmm_num_servers">-</h1>
        <h4>RMM Total Servers</h4>
    </div><!-- /.box-body -->
    </div><!-- /.box -->
</section><!-- /.col -->

<section class="col-md-3">
    <div class="box no-border">
    <div class="box-body">
        <h1 id="rmm_num_ws">-</h1>
        h4>RMM Total Workstations</h4>
    </div><!-- /.box-body -->
    </div><!-- /.box -->
</section><!-- /.col -->

2 个答案:

答案 0 :(得分:1)

由于box-body是一个类,请使用.来用类名标识它

$( this ).closest( ".box-body" ).css( "background-color", "red" );

答案 1 :(得分:1)

从文档中:

closest():对于集合中的每个元素,通过测试元素本身并在DOM树中遍历其祖先,获得与选择器匹配的第一个元素。

对于您来说,您还需要搜索所有parents及其siblings。 我认为这更适合您:

$(this).parents()。siblings(“ div.box-body”)。css(“ background-color”,“ red”);