0

我正在一个网站上工作,该网站有一些经过深思熟虑的 HTML 代码,其中包含很多没有 ID 或类的元素。我仅限于使用 jQuery(或 javascript)操作 HTML。该网站有一个没有标识符的 iFrame,但我需要用那个 iFrame 及其内容做很多事情,所以我使用 jQuery 为框架分配一个 ID(称为 upload_frame),如下所示:

$("iFrame", window.parent.document).each(function() {
        var src = $(this).attr("src");
        var search = "upload.asp";
        if( src && src.indexOf(search) != -1){
            $(this).attr("id", "upload_frame");
        }
    });

(jQuery 是从另一个 iframe 中执行的,因此当我定位任何元素时是 window.parent.document 部分。)现在,我遇到的问题是我在整个 js 文件的不同位置使用上面分配的 ID,有时似乎我的部分代码根本没有执行。没有产生错误。这可能是因为在为 iframe 分配我在其余 jQuery 代码中使用的 ID 之前执行了该代码吗?这是时间问题吗?

4

1 回答 1

2

你可以这样做:

$("iframe[src*='upload.asp']");

我认为用 jQuery 添加 ID 没有意义。使用上面的选择器,或者如果您确实选择使用循环,一旦找到正确的 iframe,只需引用它即可。不要给它一个ID来再次找到它,那是违反直觉的。

var $uploadIframe;
$("iFrame", window.parent.document).each(function() {
    var src = $(this).attr("src");
    var search = "upload.asp";
    if( src && src.indexOf(search) != -1){
        $uploadIframe = $(this);
    }
});
于 2013-07-05T10:36:54.647 回答