-1

Hello and thanks for your help.

I have a php script on my website that returns my last few tweets in form of an unordered list with the posts each being a list item.

<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>

I tried to hide some of them dynamically using JavaScript, but for some reason once I collect all the list items in an Array, I can't address them properly anymore. When I alert the length of the Array however, I get the right number. jQuery seems to be working alright in general.

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();

This way, one should expect that the second list item would have display set to none, but still both items remain visible.

What am I doing wrong?

4

8 回答 8

2

基本上你没有使用 jQuery

$(tweetArray[1]).hide()
于 2012-08-22T11:44:44.897 回答
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 回答
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
var tweets = $( '#latesttweet ul' ).children( 'li' ); 
$( tweets[1] ).hide();

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

于 2012-08-22T12:04:41.857 回答
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 回答