由于我自己的承认,我已经成为jQuery的一个非常称职的用户,而不了解它背后的javascript。
最近,在权衡是否值得为相对较小的任务导入jQuery框架时,我试图找到折衷方案。并且作为一种学习练习,试图至少考虑如何在没有jQuery的情况下实现它。
我正在研究jQuery不是一个选项的东西。 (大型组织与实践相结合)。
我可以使用jQuery的源代码选择图像,但是有人可以解释如何在普通的javaScript中执行此操作。
$('img[src*="pic.gif"]').hide();
非常感谢 加里
答案 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';
}