我遇到了iframe和ID问题。
我目前有一个没有附加ID的iframe,因为它是由其他网站javascript生成的。所以我很快写了一个Jquery脚本,在页面加载时为Iframes提供ID,并且它成功运行。但问题是,它将ID应用于页面上的所有Iframe,而不是特别是我想要的那个。
这就是我所拥有的。
<script>
$(document).ready(function () {
$("iframe").attr({
id: "iframeid1"
});
});</script>
是否有一种方法使用Jquery来“搜索和替换”页面上特定的内容?例如
搜索:
<iframe allowtransparency="true" frameborder="0" scrolling="no" width="160" height="600"
替换为:
<iframe id="iframeid1" allowtransparency="true" frameborder="0" scrolling="no" width="160" height="600"
任何帮助表示赞赏!提前谢谢!
答案 0 :(得分:1)
如果你知道它是页面上的nth
iframe:
$("iframe")[n].setAttribute('id', 'iframe1');
编辑:你也可以使用属性选择器:
$("iframe[allowtransparency=true][frameborder=no][etc=etc]").attr({id: 'iframe1'});
答案 1 :(得分:1)
这取决于是否有找到所需iframe的独特方式。例如,它是唯一宽度= 160且高度= 600的人吗?或者它始终是页面上的第X个iframe?它总是位于页面的同一位置吗?
以下是一些查询作为所有3种情况的示例:
// if the width/height combination is unique...
var iframe = $('iframe[width=160][height=600]');
// if it is always, say, the 3rd iframe on the page
var iframe = $('iframe:eq(2)'); // 0-based index
// if it is always the only iframe in a div with an id of "iframeContainer"...
var iframe = $('#iframeContainer').find('iframe');
然后你可以像你说的那样设置属性:
iframe.attr('id', 'iframeid1');
答案 2 :(得分:1)
如果iframe被包装在具有ID的div中,那么你可以这样做:
<script>
$(document).ready(function () {
$("#divID iframe").attr({
id: "iframeid1"
});
});</script>
答案 3 :(得分:0)
您可以使用选择器查找具有特定属性的iframe代码。但您需要能够从属性值中唯一地标识您想要的特定iframe,而不是HTML搜索。
举个例子:
$('iframe[width="160"][height="600"]').attr("id", "iframeid1");
这将选择宽度= 160且高度= 600的iframe标签。如果需要,您可以添加更多属性来唯一选择特定的iframe。
也许最好的选择是在iframe周围使用DOM结构来识别你想要的那个。您可以使用父对象标识符,标记的排序等。无论是什么帮助唯一标识您想要的那个。
答案 4 :(得分:0)
如果您知道iframe的位置,可以按索引位置获取。
如果页面上有4个iframe,而您正在寻找第三个iframe(相对于DOM),则可以执行以下操作:
$("iframe").get(3).attr({
id: "iframeid1"
});