jQuery通过'src'属性查找图像 - 普通javascript

时间:2011-07-27 09:54:43

标签: javascript jquery

由于我自己的承认,我已经成为jQuery的一个非常称职的用户,而不了解它背后的javascript。

最近,在权衡是否值得为相对较小的任务导入jQuery框架时,我试图找到折衷方案。并且作为一种学习练习,试图至少考虑如何在没有jQuery的情况下实现它。

我正在研究jQuery不是一个选项的东西。 (大型组织与实践相结合)。

我可以使用jQuery的源代码选择图像,但是有人可以解释如何在普通的javaScript中执行此操作。

$('img[src*="pic.gif"]').hide();

非常感谢 加里

3 个答案:

答案 0 :(得分:5)

像这样:

function findImagesByRegexp(regexp, parentNode) {
   var images = Array.prototype.slice.call((parentNode || document).getElementsByTagName('img'));
   var length = images.length;
   var ret = [];
   for(var i = 0; i < length; ++i) {
      if(images[i].src.search(regexp) != -1) {
         ret.push(images[i]);
      }
   }
   return ret;
}

答案 1 :(得分:2)

只需选择页面上的所有图像并使用regexp或字符串函数过滤其src:

var imgs = Array.prototype.slice.apply(document.getElementsByTagName('img')),
    resultImgs = [];
for (var i = 0; i < imgs.length; i++) {
    if (imgs[i].src.indexOf('img.gif') !== -1) {
        resultImgs.push(imgs[i]);
    }
}

注意Array.prototype.slice.apply。它会将HTMLCollection返回的getElementsByTagName转换为常规数组。这将使您的脚本速度提高数百倍。

答案 2 :(得分:1)

var images = document.getElementsByTagName('IMG');
for (var i = 0; i < images.length; ++i) {
    if (images[i].src == "pic.gif")
        images[i].style.display = 'none';
}