Jquery - 用HTML替换特定行

时间:2011-11-10 02:43:11

标签: javascript jquery iframe

我遇到了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"

任何帮助表示赞赏!提前谢谢!

5 个答案:

答案 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"
});