1

我一直在尝试在 SO 中查看其他帖子,但我无法将我的头脑围绕在代码示例中。请注意,我仍在学习 jQuery/JavaScript,非常感谢您对此的任何帮助。

假设我在网站上的许多不同页面上都有这些图像:

第 1 页:<img alt="..." src="images/ss-project-name.png">

第2页:<img alt="..." src="images/ss-another-project-name.png">

第 3 页:<img alt="..." src="images/ss-yet-another-project-name.png">

网站上有很多这样的图像,编辑标记是不可能的,我需要为class="screenshot"所有这些图像添加一个。

所以我最终会得到这样的结果:

<img alt="..." src="images/ss-project-name.png" class="screenshot">

以下是我尝试过的一些脚本,它们当然不起作用,但它可以让您了解我想要完成的工作:

尝试#1:

$('img').each(function(){
    if ($(this).attr('src') == "ss-"){
        $(this).addClass('screenshot');
    }
});

尝试#2:

$("img:has([src^='ss-'])").addClass('screenshot');

对此的任何帮助将不胜感激。

谢谢。

4

3 回答 3

1

你很接近,这应该工作:

$("img[src*='ss-']").addClass('screenshot');

您第一次尝试失败的原因是因为您正在测试该src属性是否完全ss-不包含该子字符串。第二次尝试没有奏效,因为:has()正如jQuery 文档所说:

选择至少包含一个与指定选择器匹配的元素的元素。

而且还因为[src^='ss-']会查找以src 开头的元素ss-,并且在您的情况下,它们以字符串开头images/

于 2013-02-27T23:20:15.997 回答
1

你可以试试这个选择器:$('img[src*="images/ss-"]').addClass('screenshot');

它将从图像目录中找到所有以ss-. 作为选择器的一部分添加images/将避免匹配文件,例如<img src="media/miss-you-so-much.png" />.

于 2013-02-27T23:29:05.227 回答
0

试试这个代码

 $('img').each(function(){
        var src = $(this).attr('src'); 
        if (src.substr(0,2) == "ss-"){
            $(this).addClass('screenshot');
        }
    });
于 2013-02-27T23:22:19.380 回答