首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取以给定字符串开头的特定类的元素?

如何获取以给定字符串开头的特定类的元素?
EN

Stack Overflow用户
提问于 2013-03-20 00:56:23
回答 11查看 35K关注 0票数 33

我有一个具有多个类的元素列表,例如:

代码语言:javascript
运行
复制
<input class="etape btn-info others">
<input class="etape btn-inverse others">
<input class="etape btn-danger others">

如何编写jQuery代码,使我可以实现以下功能...

代码语言:javascript
运行
复制
$(".etape").click(function(){
   $(this).get("the class that starts with btn-")
   // in order to store this value in a variable to reuse it later 
});
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-03-20 01:06:01

您可以使用正则表达式或split类名。

代码语言:javascript
运行
复制
$(".etape").click(function(){
   var classes = $.grep(this.className.split(" "), function(v, i){
       return v.indexOf('btn') === 0;
   }).join();
});

http://jsfiddle.net/LQPh6/

票数 53
EN

Stack Overflow用户

发布于 2013-03-20 01:34:00

您还可以尝试:

代码语言:javascript
运行
复制
$(".etape").click(function () {
    var theClass = $(this).attr("class").match(/btn[\w-]*\b/);
    console.log(theClass); 
});

使用匹配而不是grep...

票数 20
EN

Stack Overflow用户

发布于 2013-03-20 00:57:55

代码语言:javascript
运行
复制
 // Only select input which have class 
 $('input[class]').click(function(){  
   var myClass;
   // classNames will contain all applied classes
   var classNames = $(this).attr('class').split(/\s+/);  

     // iterate over all class  
     $.each(classNames, function(index, item) {
        // Find class that starts with btn-
        if(item.indexOf("btn-") == 0){
          // Store it
          myClass = item;
        }
     });

  });
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15505745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档