-1

こんにちは、あなたの助けに感謝します。

私のウェブサイトにphpスクリプトがあり、最後のいくつかのツイートを順序付けられていないリストの形式で返します。投稿はそれぞれリストアイテムです。

<div id="latesttweet">
  <ul>
    <li>
      This is a tweet<br />
      <span>3 hours ago.</span>
    </li>
    <li>
      This is another tweet<br />
      <span>4 hours ago.</span>
    </li>
  </ul>
</div>

JavaScriptを使用して動的にそれらの一部を非表示にしようとしましたが、何らかの理由で、配列内のすべてのリストアイテムを収集すると、それらを適切にアドレス指定できなくなります。ただし、配列の長さを警告すると、正しい数値が得られます。jQueryは一般的に問題なく機能しているようです。

var activeTweet = 0;
var tweet_ul = document.getElementById('latesttweet');
var tweetArray = tweet_ul.getElementsByTagName('li');

var tweetCount = tweetArray.length;
alert(tweetCount); //returns the right result

tweetArray[1].hide();

displayこのように、2番目のリストアイテムがに設定されていることを期待する必要がありますnoneが、それでも両方のアイテムは表示されたままです。

私は何が間違っているのですか?

4

8 に答える 8

2

配列はDOMオブジェクトであり、jQueryオブジェクトではありません。次のことを試してください。

var activeTweet = 0;
var tweet_ul = $('#latesttweet');
var tweetArray = $('li');

var tweetCount = tweetArray.length;
alert(tweetCount); //returns the right result

tweetArray[1].hide();
于 2012-08-22T11:46:03.290 に答える
2

基本的に、jQueryを使用していません

$(tweetArray[1]).hide()
于 2012-08-22T11:44:44.897 に答える
1

これを試して:

$(tweetArray[1]).hide();
于 2012-08-22T11:44:50.903 に答える
1
tweetArray[1].style.display="none";
于 2012-08-22T11:46:44.053 に答える
1
$(tweetArray[1]).hide();

これでうまくいくはずです。tweetArray [1]は単なるhtml要素であり、hide()メソッドが定義されていません。

于 2012-08-22T11:49:53.040 に答える
0

hide()jQueryの一部です。$()次の方法を使用する必要があります$(tweetArray[1]).hide()

于 2012-08-22T11:45:35.627 に答える
0

tweetArray[1]jqueryオブジェクトにラップする必要があります

試す

$(tweetArray[1]).hide();

于 2012-08-22T11:45:36.267 に答える
0
var tweets = $( '#latesttweet ul' ).children( 'li' ); 
$( tweets[1] ).hide();

http://jsbin.com/usiyex/2/

于 2012-08-22T12:04:41.857 に答える