使用 jquery 更改 iframe 属性
Change iframe attribute with jquery
我有这样的东西:
<iframe id="frame" width="200" height="150"
src="http://www.youtube.com/embed/GiZGEFBGgKU?rel=0&
amp&iv_load_policy=3;autoplay=1" frameborder="0" allowfullscreen></iframe>
我想使用 jquery 更改宽度和高度,我尝试:
$("#frame").setAttribute("width", "50");
$("iframe").setAttribute("width", "31");
他们都不起作用
正如 Sarfraz 已经指出的那样,为 jquery 选择器对象设置属性的正确方法是使用 attr("attrName", "attrVal")
。 setAttribute
不起作用的原因值得解释,因为我不止一次地反对这一点:
当你使用 jquery 的选择器语法时,它会返回一个对象——在 jquery 中定义——它本质上是选择器匹配的所有元素的列表。无论它匹配一个元素(id 选择器应该始终如此)还是多个元素,返回的对象都是元素列表,而不是单个 DOM 对象(例如单个元素)。 setAttribute
是实际HTMLElement
对象的方法。
这就是为什么
$("#frame")[0].setAttribute("width", "200");
有效,但是
$("#frame").setAttribute("width", "200");
不。 jquery 元素没有该方法,即使其列表中的HTMLElement
对象有
如果你想(无论出于何种原因)使用本机HTMLElement
方法(或选择器返回的元素通用的方法,如输入等),你可以使用 jquery 的 each()
方法,如下所示:
// Set all iframes to width of 250
$("iframe").each(
function(index, elem) {
elem.setAttribute("width","250");
}
);
each()
方法的回调可以传递两个可选参数,第一个是选择器列表中元素的索引,第二个是实际的 DOM 元素,您可以对其调用本机 DOM 方法。
就像我说的,我非常沮丧地试图弄清楚如何多次将 jquery 的选择器结果与本机方法一起使用,所以我希望这不仅有助于澄清为什么setAttribute()
不起作用,而且有助于清除一般的本机方法,以及如何在找不到 jquery 等效项时实际让它们工作。
怎么样:
$('#frame').width(x)
或
$('#frame').attr("width","50");
1) 使用 attr
:
$("#frame").attr("width", "31");
2) 使用 DOM 对象:
$("#frame")[0].setAttribute("width", "50");
$(document).ready( function() {
var ysr = $('iframe').attr('src');
var nysr = ysr + "HD=1;rel=0;showinfo=0";
$('iframe').attr('src', nysr);});
编辑:看到你确实有id。 你能看看代码是否真的在运行吗?就像它被触发了吗?另外,请尝试将allowfullscreen
更改为allowfullscreen="true"
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 更改多个 iframe 中的文本框属性
- 如何在 iframe 中创建 HTML5 数据属性
- 单击没有 src 属性的 iframe 中的元素
- 取消 iframe 中具有 target=“_parent” 属性的链接事件
- 为什么当我尝试为iframe-src属性构建URL时,AngularJS会抛出错误
- Displaynone属性停止在Firefox中播放youtube iframe
- 占位符属性嵌入IE中的iframe时不起作用
- 可以't使用iframe获取占位符属性以在IE中工作
- 如何获得"src”;来自多个嵌套iframe源的属性
- 谷歌地图Api在CRM Dynamics 2011 iframe"不可能使用显示属性“;消息
- AngularJS - 如何在 iframe 元素更改时读取 SRC 属性
- 想要从子 iframe 更新父 iframe 的属性
- 在具有跨源的 iframe 中设置数据属性值
- 使用 javascript 按属性获取 iframe 的元素
- 如何从 iframe 元素更改元素属性
- 如何在跨域更改 iframe SRC URL 锚标记属性 target=_blank
- 更改 iframe 源中加载的定位点属性内容
- 使用 jquery 更改 iframe 属性