你能依靠jQuery分配的元素ID吗?

时间:2013-07-05 10:29:46

标签: jquery iframe

我正在开发一个网站,其中包含一些经过深思熟虑的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之前执行了吗?这是时间问题吗?

1 个答案:

答案 0 :(得分: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);
    }
});