1

我已经在我的 HTML 页面中嵌入了 jQuery 移动页面,但是当我尝试使用 jQuery 访问其内部 div 标签时,find 方法没有返回任何内容。

带有 jQ​​uery 的 HTML

<iframe id="myframe" src="../codiqa/mobile.htm" 
    style="width: 500px; height: 520px; 
    border: 1px solid #ccc; margin-top:20px;">
</iframe> 

这里

$("#myframe").load(function(){
    alert($(this).contents().find('#mobilebutton').html());     
});

iframe 中的移动代码

<div id="mobilebutton" data-role="button">Mobile Button</div>
4

4 回答 4

1

使用window.load而不是$("#myframe").load. frame 的元素将在 $(window).load 事件上准备好,您将能够访问它们。

$(window).load(function(){
    alert($("#myframe").contents().find('#mobilebutton').html());     
});
于 2013-02-04T10:41:37.077 回答
0

根据 jquery API 指南: .html() “获取匹配元素集中第一个元素的 HTML 内容”

这样,您需要在其前面添加 .parent 以获取定向元素。在这种情况下:

$("#myframe").load(function(){
alert($(this).contents().find('#mobilebutton').parent.html()); });

如果您想获取按钮的 html

于 2013-02-04T10:49:29.183 回答
0

如果@Adil 解决方案不起作用,您可以尝试使用此函数动态添加 iframe 以附加加载事件:

function callIframe(url, callback) {
    $(document.body).append('<iframe id="myframe" 
                             style="width: 500px; height: 520px; 
                             border: 1px solid #ccc; margin-top:20px;">
                            </iframe> ');
    $('myframe').attr('src', url);
    $('myframe').load(function() 
    {
        alert($(this).contents().find('#mobilebutton').html())
    });
}

如何使用它?

$('document').load(callIframe('../codiqa/mobile.htm'));

更远:

于 2013-02-04T11:04:24.323 回答
0

它在 IE 上运行良好。

尝试一下

alert($(this).contents().find('#mobilebutton').html());
于 2013-02-14T11:48:45.647 回答