为什么我不能通过jQuery通过$('#iframeid')选择iframe?

时间:2014-03-08 01:02:06

标签: javascript jquery iframe

我有一个包含iframe的页面:

<iframe id="a"></iframe>

我有jQuery,当我使用时:

$('#a')$('iframe#a'),我无法获得该元素。我得到的是[],就像我查询不存在的HTML节点一样。

更新:我想选择<iframe>代码并对其执行某些操作,例如,删除它或更改其高度。我不打算控制iframe中的HTML。

感谢您提供任何建议。

1 个答案:

答案 0 :(得分:1)

这个问题就是为什么如此有用向我们展示小提琴中的所有相关代码的一个很好的例子。 :)

你的JSFiddle:http://jsfiddle.net/t925e

正如您在评论中所述,您正在使用math.random()附加到ID名称。这是你的问题。

我们来看一下math.random()将返回的样本:

0.8400670071132481

因此,使用它并将其附加到您的ID,您最终会得到:

iframeid0.8400670071132481

哪个不是有效的ID值(您的ID中没有句号)

另一个问题是你的jQuery选择器现在正在寻找ID为“iframeid0”和类“8400670071132481”的东西 - 这在你的页面上是不存在的。

我不确定为什么你需要一个随机ID,但如果你这样做,解决办法就是去掉它里面的小数。一个简单的方法是使用math.floor()和乘数。

例如

var ss = Math.floor(1000*Math.random());

这将为您提供0到999之间的随机整数。如果您需要更大的范围,请增加乘数。