我正在使用 Phonegap 构建一个小型(仅测试)Macrumors 应用程序,并且远程主机实际上可以工作(没有相同的主机浏览器限制)。我正在使用 jQuery Load()
函数加载 Macrumors 主页 http://www.macrumors.com/ 的内容放入 bin、隐藏的 div 中,然后使用 every 函数循环遍历所有文章类,以在带有页面链接的框中显示标题。
问题是,加载 Macrumors HTML 内容后,each
函数不适用于文章类。另外,在加载函数中(它允许您指定某些选择器、包含的 ID 和类,以便仅在页面的这些部分加载)该类不起作用;在加载函数和每个函数中,没有一个类这样做。而且许多 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
中获取链接对象,你需要你的代码像这样,这样你只能找到 <a>
每个 .article
中的标签对象,不是全部 <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>')
});
});
}
关于javascript - jQuery every 不适用于某些类或一般类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766353/