jquery 如何找到包含另一个类的特定类?

olmpazwi  于 2023-06-05  发布在  jQuery
关注(0)|答案(1)|浏览(84)

我有以下代码:

<div class="accordion mobile ui-accordion ui-widget ui-helper-reset" role="tablist">
    <h3 class="accord-**19** **ui-state-active**"><span class="ui-accordion-header-icon ui-icon ui-icon-triangle-1-s">Title 1</h3>
        <div style="" class="ui-accordion-content ui-corner-bottom ui-helper-reset ui-widget-content ui-accordion-content-active" id="ui-id-2" aria-labelledby="ui-id-1" role="tabpanel" aria-hidden="false">
            Content for title 1
        </div>
        <h3 class="accord-41">Title 2</h3>
        <div style="display: none;" class="ui-accordion-content ui-corner-bottom ui-helper-reset ui-widget-content" id="ui-id-4" aria-labelledby="ui-id-3" role="tabpanel" aria-hidden="true">
            Content for title 2
        </div>
        <h3 class="accord-47">Title 3</h3>
        <div style="display: none;" class="ui-accordion-content ui-corner-bottom ui-helper-reset ui-widget-content" id="ui-id-6" aria-labelledby="ui-id-5" role="tabpanel" aria-hidden="true">
            Content for title 3
        </div>        
</div>

我想做的是:

  • 获取包含ui-state-active类的h3标记,然后
  • 获取以“雅阁-”开头的类名后面的唯一ID(在本例中为19)。

注意,上面的内容是我正在使用的一个插件制作的,这意味着我不能为h3设置唯一的“id”标签。
我试过:
var classname = $("div.accordion h3.ui-state-active").find('class^="accord-"');
在我给它添加子字符串之前,获取类名。然而,这不起作用。

zzwlnbp8

zzwlnbp81#

当你试图检索类名.find时,这不是正确的方法。要查找元素的属性,您应该使用.attr,然后指定.attr("class")来查找类。然后使用正则表达式找到正确的accord-id

var classname = $("div.accordion h3.ui-state-active").attr("class");
var id = classname.match(/accord-(\d+)/)[0];

相关问题