2

私はスタイルのトップの親が欲しいのですが、それは動的でなければなりません。私はスタイルのトップの親が欲しいだけです。親divをさらに追加できますが、スタイルはdivに反映される必要があります。jqueryでそれが可能です。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">

$(function(){
    $('.text').parent().css('background-color','red')
})

</script>
</head>
<body>

<div>
    <div>
        <div class="menu">
            <div class="text">hiiii</div>
        </div>
    </div>
</div>

</body>
4

3 に答える 3

5

「最上位の親」の意味によってはparents、セレクターを備えた関数が必要になる場合があり"div"ます。

$(function(){
    $('.text').parents("div").last().css('background-color','red');
});

これは、$('.text')1つの要素にのみ一致する場合にのみ期待どおりに機能することに注意してください。複数一致する場合は、ループが必要になります。例:

$(function(){
    $('.text').each(function() {
        $(this).parents("div").last().css('background-color','red');
    });
});

...各マッチングの「最上位の親」.textを赤に設定します。

于 2012-07-03T06:43:17.240 に答える
0

現在選択されている要素の中で最高レベルの要素が必要だと思います。を使用して、divのすべての親をと.parents()まで取得できます。bodyhtml

$(".text").parents()
[
<div class=​"menu" style=​"background-color:​ red;​ ">​…​&lt;/div>​, 
<div>​…​&lt;/div>​, 
<div>​…​&lt;/div>​, 
<body>​…​&lt;/body>​,
<html>​…​&lt;/html>​
]

parents = $(".text").parents();
var rootElement = $(parents[parents.length-3])

and-3を含めていないので、そうします(つまり、配列は0に基づいているので、別の配列を減算します)。この減算を実行して、のようなセレクターを指定し、最後のセレクターを取得することもできませんでした。ただし、ルート要素がどのような要素であるかを知る必要があります。bodyhtml-2.parents("div")

于 2012-07-03T06:43:39.913 に答える
0

あなたは以下のようにそれを行うことができます:

$('.text').parents('div:last').css('background-color','red')​;

.parents()祖先を内側から外側の順序で返すため、:lastセレクターを追加して最も外側の親を取得できます。

于 2012-07-03T06:43:13.330 に答える