为什么这个jQuery不工作?

时间:2011-06-09 05:40:40

标签: javascript jquery html css

我有一个<li>style="display:none"的列表,我希望通过调用以下代码来显示第一个<li>,但它似乎不起作用。

    $('.tweet_list li').first().css('display','list-item');

点击此处查看demo page,它自style="display:none"属性后无法显示任何内容。

我也尝试过:

$('.tweet_list li').first().show();
$('.tweet_list li:first').show();

他们都没有工作。

4 个答案:

答案 0 :(得分:4)

通过在该行设置断点,您会发现在执行该断点时,ul.tweet_list为空。

为什么呢?因为填充.tweet()的{​​{1}}是异步的:当您的<ul>行执行时,推文尚未加载。

通过jquery.tweet.js挖掘,我找到了这一行(第233行):

.css()

所以看起来你需要绑定到$(widget).trigger("loaded").trigger((tweets.length === 0 ? "empty" : "full")); 事件,并在那里显示第一条推文:

loaded

答案 1 :(得分:1)

尝试:

$('.tweet_list li').first().show();

答案 2 :(得分:0)

没有声明要保存您所指的tweet_list类的元素。它不是由您的代码创建/分配的,也不是HTML中的静态代码。问题可能是你指的是一个不存在的元素?

答案 3 :(得分:0)

你还需要在document.ready中包装所有内容 - 当你只显示1时为什么有5?

$(document).ready(function(){
  $("#twitter_update_list").tweet({
        username: ".....",
        avatar_size: 0,
        count: 1, //display up to 100 tweets, as permitted by the twitter search api
        loading_text: "loading tweets..."
      }).bind("loaded", function () { // code from @Box9
        $('.tweet_list li').first().css('display','list-item');
      });
});