jQuery每个都没有't与某些类或一般类一起工作

jQuery each doesn't work with certain classes, or classes in general?

本文关键字:工作 一起 jQuery      更新时间:2023-09-26

我正在使用Phonegap构建一个小型(仅限测试)Macruits应用程序,远程主机实际上可以工作(没有相同的主机浏览器限制)。我正在使用jQuery Load()函数加载Macruits主页的内容http://www.macrumors.com/在一个bin中,隐藏div,然后each函数循环遍历所有文章类,在一个带有页面链接的框中显示标题。

问题是,在加载了Macrurts HTML内容之后,each函数无法与文章类一起使用。此外,在load函数中(它允许您指定某些选择器,包括id和类,只在页面的这些部分加载),类不起作用;在load函数和每个函数中,没有一个类这样做。许多Id在each函数中也不起作用。

  • 有人能向我这样的笨蛋解释吗

这是代码:

function onDeviceReady()
{
    // do your thing!
    $('#bin').load('http://www.macrumors.com/ #content');
    $('.article').each(function(){
    var title = $('a').html();
    $('#content').append('<b>'+title+'</b>')
    }); 
}

HTML内容

    <body onload="onBodyLoad()">
       <div id="bin">
       </div>
       <div id="content">
       </div>
    </body>

如果我错过了一些非常简单的错误,我真诚地道歉;我是专业JS新手。

.load()是异步的。当您执行.each()时,它还没有完成。您需要将.each()和任何其他想要对.load()的结果进行操作的代码放在.load()的成功处理程序中。

你可以这样做:

function onDeviceReady()
{
    // do your thing!
    $('#bin').load('http://www.macrumors.com/ #content', function() {
        $('.article').each(function(){
            var title = $('a').html();
            $('#content').append('<b>'+title+'</b>')
        }); 
    });
}

我还猜测您的.each()函数工作不太正常。如果你想获得每个.article对象的链接,你需要你的代码是这样的,这样你就只能在每个.article对象中找到<a>标签,而不是在整个文档中找到所有<a>标签:

function onDeviceReady()
{
    // do your thing!
    $('#bin').load('http://www.macrumors.com/ #content', function() {
        $('.article').each(function(){
            var title = $(this).find('a').html();
            $('#content').append('<b>'+title+'</b>')
        }); 
    });
}