如何使用jquery从类列表中的动态类名中获取数字

如何使用jquery从类列表中的动态类名中获取数字,jquery,regex,jquery-plugins,dynamic,Jquery,Regex,Jquery Plugins,Dynamic,我的情况是: 我有一个HTML列表元素,其中包含未知数量的类(必须是动态的),我正在向这个类列表中添加两个类。单击隐藏在中的链接后,我需要能够动态地从我添加到其中的一个类中获取一个数字 我添加到列表中的类是“display container”和“display-#”(#表示我需要的数字) 下面是我目前的解决方案,但是,必须有更好的方法来获得这个数字。任何帮助都将不胜感激 $.each($(this).closest('.display container').attr('class').spl

我的情况是: 我有一个HTML列表元素,其中包含未知数量的类(必须是动态的),我正在向这个类列表中添加两个类。单击隐藏在中的链接后,我需要能够动态地从我添加到其中的一个类中获取一个数字

我添加到列表中的类是“display container”和“display-#”(#表示我需要的数字)

下面是我目前的解决方案,但是,必须有更好的方法来获得这个数字。任何帮助都将不胜感激

$.each($(this).closest('.display container').attr('class').split(“”),
职能(一、项目){
如果(此.match(“^display-[0-9]+”){
currentObj=项目拆分('-')[1];
}
}
)

我正在编写的代码将进入一个插件(这就是为什么我需要动态类列表)。下面给出了一个示例列表元素

                    <loop query="itemList">
                    <li class="item-#currentRow#">
                        <table>
                            <tr>
                                <td class="vat">
                CONTENT
                                </td>
                                <td class="vat">
                CONTENT
                                </td>
                                <td class="vat">
                CONTENT
                                </td>
                                <td class="vat">
                                    <span><a href="javascript://" class="edit" id="edit-#id#">Edit</a></span>
                                    <span><a href="javascript://" class="delete" id="delete-#ID#">Delete</a></span>
                                </td>
                            </tr>
                        </table>
                    </li>
                    </loop>
                </ul>`


  • 内容 内容 内容
  • `
    我对html设置的理解

    canned my html, using yours.
    
    Javascript:

    var regEx = /display-[\d]+/;
    var classesLongString = $(this).closest('li').attr('class');
    var yourDisplayNumberClass = regEx.exec(classesLongString );
    var currentObj = 0;
    if(yourDisplayNumberClass){
       currentObj = yourDisplayNumberClass.split('-')[1];
    }
    
    现在,在上述变量中有display-##

    这是有效的:

    var currentObj = /display-([0-9]+)/.exec(
                         $(this).closest('.display-container').attr('class')
                     )[1];
    
    也许:


    [未测试]

    能否添加HTML列表元素的示例?您好,我整理了您的javascript格式(使用“{}”符号)。据我所知,这是最简单的方法。可能不是你想要的,但是如果你在更新类时在类属性的开头添加数字,并使用parseInt将其导出,会容易得多。这意味着要执行
    $(this).attr('class',number+'+$(this).attr('class'))
    ,而不是使用addClass()或您当前正在执行的任何操作。可能会让你感到痛苦。但是如果你这样做的话,你以后可以通过
    parseInt($(this).attr('class'))
    @jslamka是我的html对吗?class=“display container…..display-98237841”是在ul中还是在?您是对的。我非常感谢你为我简化了它。我修改了您为简化代码而提供的JS。@jslamka很高兴我能提供帮助,我能在您的html示例中识别出一些Coldfusion标记吗?我正在和cfc和ajax搏斗,哈哈!
    var regEx = /display-[\d]+/;
    var currentObj = regEx.exec($(this).closest('.display-container').attr('class'))[0].split('-')[1];
    
    var regEx = /display-[\d]+/;
    var currentObj = regEx.exec($(this).closest('.display-container').attr('class'))[0].split('-')[1];