jQuery.选择所有类名以...开头的元素

13

如果我有带有以下类名的元素:

   .ses_0 .ses_1 .ses_2 .ses_3  

如何选择所有元素并在其前面添加一些代码段?类似于这样:

    var sessions = $('*[class*=ses_]');

    for (var i = 0; i < sessions.length; i++)
    {
        sessions [i].prepend("<img src='/Content/img/caticon"+i+".png' />");
    }

当然那样不起作用。

编辑:啊...该死,似乎我不仅需要获取那些以.ses_开头的类,还需要获取其中的<a>元素。我该怎么做呢?

基本上需要像这样才能生效$(".ses_0 a"),只是我需要获取所有以ses_开头的类。

2个回答

23

你已经接近成功了:

// selects all that start with "ses_"
var sessions = $('[class^="ses_"]');

尽管您的循环应该可以工作,但您也可以使用

sessions.each(function(index){
    this.prepend(... // and so on
});

如果我需要获取所有类名以“ses_”开头的元素中的锚点(a标签),该怎么办? - iLemming
只需要在选择器 $('a[class^="ses_"]'); 前面加上一个 'a' 就可以了。 - Andreas
变量anchors等于$('[class^="ses_"] a'); - typeof
我的选择器应该在具有以“ses_”开头的类的元素内部包含锚点时起作用。我刚测试过了 :). john_doe的选择器将选择以“ses_”开头的类别中的锚点 - 这不是您要求的内容。 - typeof
2
如果您的元素有多个类,请小心,它可能不是以您期望的那个类开始的。<a class="anotherclass ses_1">将无法被$('a[class^="ses_"]')找到。请参阅https://dev59.com/oXI95IYBdhLWcg3wvgh9#2178504。 - Mart

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接