2012-11-11 22 views
1

我编写了几行提取页面中所有img标签的URL。 确定一切正常,但我不知道是否有办法将我的代码应用于页面中的特殊div! 我的意思是我想从div中获取img标签的URL,而不是从整个页面主体获取。 我希望我解释清楚我的意思:) 任何解决方案,将不胜感激仅在div中应用javascript?

 function getURL() { 
       var url = []; 
       var a = document.getElementsByTagName('img'); 
       for (var i=0, j = a.length; i<j; i++) 
       { 
        if (/\.(jpg|jpeg|gif|png)$/im.test(a[i].getAttribute('src'))) 
        { 
         url.push(a[i].getAttribute('src')); 
        } 
       } 
       document.write(url); 
     } 
+0

你不需要在for循环中使用'j'变量。还要注意,'j'没有被声明,因此它生活在全球范围 – lostsource

回答

2

更换document.getElementsByTagName('img')yourElement.getElementsByTagName('img');

+0

也考虑使用这些类型的函数库,如原型或jQuery。有了jquery,你可以用''''$('#yourElement img')''''选择所有图像内的图像 – dtech

+0

谢谢Marat – Arash

+0

它没有工作,但很好的帮助+1 – Arash

2

更改函数接受的startElement参数,然后调用的getElementsByTagName传递的元素

function getURL(startElement) { 
      var url = []; 
      var a = startElement.getElementsByTagName('img'); 
      for (var i=0, i < a.length; i++) 
      { 
       if (/\.(jpg|jpeg|gif|png)$/im.test(a[i].getAttribute('src'))) 
       { 
        url.push(a[i].getAttribute('src')); 
       } 
      } 
      return url; // return the result instead of writing it 
    } 

说你有这个标记

<div id='myDiv'><img src='test.jpg'/></div> 

你可以再调用

var urls = getUrl(document.getElementById('myDiv')); 

此外,我建议不要使用document.write,开放的开发工具(通常为F12),而使用的console.log,

console.log(urls); 
+0

伟大的,很棒的帮助。谢谢你的朋友 – Arash

+0

它没有工作,但很大的帮助+1 – Arash