有没有办法不使用getElementById就可以将iframe src传递到变量中?我不知道动态生成的iframe的ID,但我希望能够检查src,看看它是否与定义的字符串匹配-iframe有一个我可以指向的类,即fancybox-iframe我希望这会起作用,但它没有:
getElementById
var srcURL = document.getElementsByClassName('fancybox-iframe').src;
ipakzgxi1#
您可以使用getgetElementsByTagName()方法:
getgetElementsByTagName()
srcURL = document.getElementsByTagName("iframe")[0].src;
注意,这个方法的名字是用复数形式写的,所以结果是一个数组,即使这个数组只包含一个元素,这就是为什么要附加参数[0]。
[0]
a5g8bdjr2#
在 评论 中 确认 :
iframe
fancybox-iframe
您 可以 使用
$("iframe.fancybox-iframe")
中 的 每 一 个然后 应用 .attr("src") 以 获得 源 代码 :
.attr("src")
$("iframe.fancybox-iframe").attr("src")
格式它 的 格式 为 nodename.class ( 没有 任何 空格 ) , 这 意味 着 元素 必须 是 节点 类型 ( iframe ) * 并且 * 具有 类 ( fancybox-iframe ) 。你 也 可以 用
nodename.class
$(".fancybox-iframe").attr("src")
格式如果 该类 只 在 该 iframe 上 使用 的 话 。
n6lpvg4x3#
Element.prototype.getElementsByClassName
会传回元素数组,所以您应该使用
document.getElementsByClassName('fancybox-iframe')[0].src
或者更好
const elements = Array.from(document.getElementsByClassName('fancybox-iframe')) .filter(element => element.tagName.toLowerCase() == 'iframe'); if(!elements.length) { // handle no iframe.fancybox-iframe found } const src = elements[0].src
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassNamehttps://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByClassName您也可以使用Element.prototype.querySelector和Element.prototype.querySelectorAll来避免过滤getElementsByClassName结果,并直接获取iframe,如下所示
Element.prototype.querySelector
Element.prototype.querySelectorAll
getElementsByClassName
const elements = Array.from(document.querySelectorAll('iframe.fancybox-iframe'))
3条答案
按热度按时间ipakzgxi1#
您可以使用
getgetElementsByTagName()
方法:注意,这个方法的名字是用复数形式写的,所以结果是一个数组,即使这个数组只包含一个元素,这就是为什么要附加参数
[0]
。a5g8bdjr2#
在 评论 中 确认 :
iframe
fancybox-iframe
您 可以 使用
中 的 每 一 个
然后 应用
.attr("src")
以 获得 源 代码 :格式
它 的 格式 为
nodename.class
( 没有 任何 空格 ) , 这 意味 着 元素 必须 是 节点 类型 ( iframe ) * 并且 * 具有 类 ( fancybox-iframe ) 。你 也 可以 用
格式
如果 该类 只 在 该 iframe 上 使用 的 话 。
n6lpvg4x3#
会传回元素数组,所以您应该使用
或者更好
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName
https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByClassName
您也可以使用
Element.prototype.querySelector
和Element.prototype.querySelectorAll
来避免过滤getElementsByClassName
结果,并直接获取iframe,如下所示