这是我的HTML
<a href="index.php"><img id="testimg" src="images/logo.png"/></a>
这是我的javascript
function getW(){
var theImg = document.getElementById('testimg');
return theImg;
}
theImg = getW();
if (theImg.width > 119){
document.write(theImg.width);
}
现在当我使用这个脚本时,它会输出img width
但是当我使用这个脚本时
function getW(){
var theImg = document.getElementsByTagName("img");
return theImg;
}
theImg = getW();
if (theImg.width > 119){
document.write(theImg.width);
}
它不会输出任何内容。有什么区别,为什么第二个脚本会起作用?
谢谢!
答案 0 :(得分:4)
因为getElementsByTagName()
返回一组多个元素(请注意元素)。您需要使用[0]
来获得第一个匹配的内容。
另一方面,id
应该始终是唯一的,因此getElementById()
会返回对单个元素的引用。
答案 1 :(得分:1)
gEBTN返回节点列表。对{1}进行theImg[0]
。
对于您的其他问题,请在nodeList的for
上执行length
循环。
答案 2 :(得分:1)
getElementsByTagName()返回与您提供的标记名称匹配的节点(元素)数组。因此,当您的第一个代码示例返回单个元素时,您的第二个代码示例将使用数组。
为了通过getElementsByTagName获取您正在寻找的图像,您需要进行属性搜索(例如,查找适当的名称或id标记)或者只需知道页面上的顺序。
在您的示例中,Im [0]将返回您要查找的图像。
答案 3 :(得分:0)
方法document.getElementById('testimg')
返回一个id为testimg
的真实元素对象。方法document.getElementsByTagName("img")
将返回一个数组,其中包含标记为img
的所有元素对象。
但如果有多个ID为testimg
的元素,则方法document.getElementById('testimg')
将返回第一个。
答案 4 :(得分:0)
替换您的代码:
var theImg = document.getElementsByTagName("img");
使用此代码:
var theImg = document.getElementsByTagName("img").item(0);
或使用此代码:
var theImg = document.getElementsByTagName("img")[0];
两者都是等效的,请注意.item(0)
,它相当于[0]
。
如果所需图像是第一个,则零是正确的,否则将零替换为正确的索引。