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