如何从层次结构中获取属性? (读)

时间:2011-05-28 21:29:57

标签: javascript dom src

我有以下代码(示例):

<body>
 <div id="obj1">
  <span id="obj2">
   <img src="someimage2.jpg" class="image" />
  </span>
  <img src="someimage2.jpg" class="image" />
 </div>
 <img src="someimage3.jpg" class="image" />
 <button onClick="getUrl();">Get it?</button>
</body>

我需要JavaScript来获取位于正文&gt;&gt;的图像的网址obj1&gt;&gt; obj2&gt;&gt; IMG

我可以想象一个与此类似的标记......

function getUrl() {
   alert(document.getElementById("obj1").getElementById("obj2").img.getAttribute("src"));
}

但是(多么令人惊讶!)它显然不起作用。

有任何帮助吗? :)

我想做什么(如果这有帮助):

我有一个输入和一个按钮。说我输入这个输入:

Cyber Dragon

按下按钮时调用此代码:

'do something' or here: document.write('<input id="src" /><button onClick="getImg();">Get</button><br /><iframe src="http://yugioh.wikia.com/wiki/' + document.getElementById("src").value.replace(" ","_") + '"></iframe>');

然后,我需要从网站获取图像的src属性(在本例中为“http://yugioh.wikia.com/wiki/Cyber​​_Dragon”),但这并不是那么简单。

网站将其存储在img中,而不是ID的Div中,并且只能通过其层次结构位置从其他图像中获知。而且,img的src很复杂而且不普遍。例如,一个人的地址就是

http://images3.wikia.nocookie.net/__cb20060929013607/yugioh/images/thumb/e/e5/CyberDragonCRV-EN-SR.jpg/300px-CyberDragonCRV-EN-SR.jpg

,另一个看起来像

http://images1.wikia.nocookie.net/__cb20090402012158/yugioh/images/thumb/a/a6/HonestLODT-EN-ScR-1E.png/300px-HonestLODT-EN-ScR-1E.png

1 个答案:

答案 0 :(得分:3)

由于任何给定id的文档中只能包含一个元素,因此只需要一个getElementById。然后,您可以使用getElementsByTagName查找图片,然后使用src属性查找图片的来源:

var imgsrc = document.getElementById('obj2').getElementsByTagName('img')[0].src;