jQuery .hide()不适用于我的数组

时间:2012-08-22 11:43:25

标签: javascript jquery html css

您好,感谢您的帮助。

我的网站上有一个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设置为none,但这两个项目仍然可见。

我做错了什么?

8 个答案:

答案 0 :(得分:2)

基本上你没有使用jQuery

$(tweetArray[1]).hide()

答案 1 :(得分: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();

答案 2 :(得分:1)

试试这个:

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

答案 3 :(得分:1)

tweetArray[1].style.display="none";

答案 4 :(得分:1)

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

这应该可以胜任。 tweetArray [1]只是一个html元素,它没有为它定义hide()方法。

答案 5 :(得分:0)

hide()是jQuery的一部分。您必须使用$()方法:$(tweetArray[1]).hide()

答案 6 :(得分:0)

您必须将tweetArray[1]包装到jquery对象

尝试

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

答案 7 :(得分:0)

var tweets = $( '#latesttweet ul' ).children( 'li' ); 
$( tweets[1] ).hide();

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