6

次のコードでは、「latest」の下の最初の div の値を取得しようとしていますが、「undefined」を取得し続けています。5705 という値を期待しています。これでうまくいくはずですよね? これを正しく設定するにはどうすればよいですか?

var auto_refresh = setInterval(function()
{
    console.log($('.latest').first().attr('lastValue'));
}, 5000); // refresh every 5 seconds

HTML 部分: ここにさらに div が追加されます。したがって、5705 は 5710 またはその他の可能性があります。

<div class="latest">
<div class="story" lastValue="5705">Story 5</div>
<div class="story" lastValue="5704">Story 4</div>
<div class="story" lastValue="5703">Story 3</div>
<div class="story" lastValue="5702">Story 2</div>
<div class="story" lastValue="5701">Story 1</div>
</div>
4

5 に答える 5

7

最初のコンテナではなく、最初のを選択する必要があります

$('.latest>div').first().attr('lastValue')

また

$('.latest').children().first().attr('lastValue')
于 2012-11-06T08:16:31.017 に答える
5

クラスが最新の最初の要素ではなく、最初の子を選択します。

console.log($('.latest > div').first().attr('lastValue'));
于 2012-11-06T08:14:47.527 に答える
2

間違った要素を選択しているため、要素が必要ですが要素を選択しています。使用する:.story.latest

$('.latest .story:first').attr('lastValue');

または:

$('.latest .story:first-child`).attr('lastValue');

または:

$('.story:first-child').attr('lastValue');
于 2012-11-06T08:16:45.797 に答える
1

$('.latest')latestinclass属性 を持つ要素の配列を返します。
したがって$('.latest').first()、この配列の最初の要素を返します。
あなたの例では、HTML要素div.latestは最初ではなく返されdiv.storyます。

あなたが試してみると:console.log($('.latest').first().attr('class'))あなたはあなたが書いたものと一致しているものを見るでしょう。

あなたは最初の最新の物語に到達したいようです、div.story要素の下の最初の要素を意味しdiv.latestます。
だから試してみてください:console.log($('.latest .story').first())

ここでJSFIDDLEを使った私のテスト:http://jsfiddle.net/lnplnp/yuMPf/

于 2012-11-06T13:09:44.837 に答える
1

これを行うにはいくつかの方法があります。

console.log($('.latest .story').first().attr('lastValue'));

また

console.log($('.latest .story:first-child').attr('lastValue'));

また

console.log($('.latest').find('.story').attr('lastValue'));
于 2012-11-06T08:17:30.130 に答える