-3

for以下のように、PHPに4つのループがdivあり、それぞれにaimgp文字列が含まれています。

<div class="guest-tile-holder">             
    <img class="guest-tile" src="<?php echo($tile); ?>">
    <p><span><?php echo($fn.' '.$ln); ?></span></p>
</div>

pjQueryでは、次のように、4つおきの黒、つまり4番目のボックスで作成された文字列のみに色を付けたいと思いpます。

$(document).ready(function() {
    $('p:nth-child(4)').css('color', 'black');
});

私が期待するのは、PHPが前処理を行い、上記のように4つを作成してから、jQueryが4番目の文字列をdiv黒く着色することです。しかし実際に起こっているのは、jQueryがPHPを無視し、HTMLでさらに3文字離れた文字列に色を付けているように見えることです。pdivpp

私はいつもPHPが前処理されると信じさせられていたので、PHPが完了する前にjQueryが実行されているように見える理由がわかりません。

PHPが終了した後にjQueryを実行する方法を教えてもらえますか?

4

3 に答える 3

3

インデックスは同じ親要素内の要素に基づいているため、親div要素がDOMの同じレベルにある場合は、その要素をターゲットにnth-childして、その要素のセレクターを使用し、段落を見つけて変更する必要があります。 CSS:

$('div.guest-tile-holder:nth-child(4)').find('p').css('color', 'black');
于 2013-01-27T16:56:32.443 に答える
1

あなたのjQueryはあなたのPHPコードの後に​​正しく実行されます、それはあなたが正しいものを選択していないということだけですp

p:nth-child(4)階層の4番目の要素である段落を選択します。たとえば、最初の要素の前にはaと。pが付いているため、最初の要素は3番目の要素になります。実際に探しているのは、jQueryのカスタムセレクターのようなもの、またはそれを使用しているものです。divimgp:nth-of-type(4).guest-tile-holder:nth-child(4):eq()

$('.guest-tile-holder:eq(3) p').css('color', 'black');

(JavaScript配列はゼロベースのインデックスを使用するため、4番目の要素にはインデックス3があります。)

于 2013-01-27T16:59:25.567 に答える
1

検索を使用する必要はありません。次のようにするだけです。

$('div.guest-tile-holder:nth-child(4) p').css('color', 'black');
于 2013-01-27T16:59:32.987 に答える