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

jQuery通过'查找图像;src&x27;属性-普通javascript,javascript,jquery,Javascript,Jquery,据我自己承认,我已经成为jQuery的一个相当有能力的用户,而对其背后的javascript知之甚少 就在最近,在权衡是否值得为相对较小的任务导入jQuery框架时,我试图找到一个折衷方案。作为一种学习练习,尝试至少思考一下没有jQuery如何实现它 我目前正在做一些jQuery不可用的事情。(大型组织,实践一成不变) 我可以使用jQuery的源代码来选择一个图像,但是有人能解释一下如何用纯javaScript来实现这一点吗 $('img[src*="pic.gif"]').hide(); 非

据我自己承认,我已经成为jQuery的一个相当有能力的用户,而对其背后的javascript知之甚少

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

我目前正在做一些jQuery不可用的事情。(大型组织,实践一成不变)

我可以使用jQuery的源代码来选择一个图像,但是有人能解释一下如何用纯javaScript来实现这一点吗

$('img[src*="pic.gif"]').hide();
非常感谢
Gary

只需选择页面上的所有图像,并使用regexp或string函数过滤它们的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]);
    }
}
var-imgs=Array.prototype.slice.apply(document.getElementsByTagName('img')),
结果Ms=[];
对于(变量i=0;i
注意
Array.prototype.slice.apply
。它将
getElementsByTagName
返回的
HTMLCollection
转换为常规数组。这将使脚本速度提高数百倍。

如下所示:

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;
}
函数findImagesByRegexp(regexp,parentNode){
var images=Array.prototype.slice.call((parentNode | | document).getElementsByTagName('img');
var-length=images.length;
var-ret=[];
对于(变量i=0;i
var images=document.getElementsByTagName('IMG');
对于(变量i=0;i
我想你是想使用
数组.原型.切片.应用
是的,修复了。谢谢现在效果很好。
var images = document.getElementsByTagName('IMG');
for (var i = 0; i < images.length; ++i) {
    if (images[i].src == "pic.gif")
        images[i].style.display = 'none';
}