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