jQuery .find()方法不起作用

时间:2014-04-23 13:44:52

标签: javascript jquery jquery-plugins

我正在开发一个与Twitter相关的项目并使用Tweetie-master jQuery插件。

链接:https://github.com/seaofclouds/tweet

但遗憾的是jQuery .find()方法根本不起作用。我尝试了很多,但找不到错误。

<script type="text/javascript">
$(document).ready(function() {
    $('#twitter_feed').twittie({
        dateFormat: '%b. %d, %Y',
        template: '{{avatar}} {{tweet}} {{screen_name}} {{date}}',
        count: 3
    });
    $("#twitter_feed ul").find("li:first").css({"color":"red","border":"2px solid red"});
});
</script>

我的项目演示链接:http://zinan.me/twitter/

4 个答案:

答案 0 :(得分:4)

它不起作用,因为执行$("#twitter_feed ul").find("li:first")时,没有加载推文,因此不存在li。你应该使用回调函数,如果我理解twittie:

$('#twitter_feed').twittie({
    dateFormat: '%b. %d, %Y',
    template: '{{avatar}} {{tweet}} {{screen_name}} {{date}}',
    count: 3
}, function () {
    $("#twitter_feed ul").find("li:first").css({"color":"red","border":"2px solid red"});
});

答案 1 :(得分:0)

我的猜测是twittie()是异步的,所以代码不等待响应。在twittie返回任何内容之前,代码执行find并且什么也没找到。查找twittie()回调函数。

答案 2 :(得分:0)

由于@Holt指出在填充div之前执行了jquery代码。 如果你只想改变第一个li的风格,那么你也可以使用CSS来实现它:

#twitter_feed ul li:first-child { color: #F00; border: 1px solid #F00;}

答案 3 :(得分:0)

我认为这应该不会测试但是值得一试

<script type="text/javascript">
$(document).ready(function() {
    $('#twitter_feed').twittie({
        dateFormat: '%b. %d, %Y',
        template: '{{avatar}} {{tweet}} {{screen_name}} {{date}}',
        count: 3
    }).promise().done(function(){
        $("#twitter_feed ul").find("li:first").css({"color":"red","border":"2px solid red"});
    });

});
</script>