我的情况是这样的: 我有一个HTML列表元素,其中包含未知数量的类(必须是动态的),我在这个类列表中添加了两个类。单击隐藏在其中的链接后,我需要能够从我添加到其中的一个类中动态获取一个数字。
我添加到列表中的类是'display-container'和'display-#'(#表示我需要的数字)。
以下是我目前的解决方案,但必须有更好的方法来获得这个数字。任何帮助将不胜感激。
$.each($(this).closest('.display-container').attr('class').split(' '),
function(i, item) {
if(this.match('^display-[0-9]+')) {
currentObj = item.split('-')[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>`
答案 0 :(得分:0)
我对你的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];
}
你现在在上面的变量中显示了##。
答案 1 :(得分:0)
这有效:
var currentObj = /display-([0-9]+)/.exec(
$(this).closest('.display-container').attr('class')
)[1];
答案 2 :(得分:0)
也许:
$('.display-container a').live('click',function(){
var $cont = $(this).parents('.display-container');
var rgx = new RegExp( "display\-(\d+)" );
var cls = rgx.exec( $cont.attr('class') );
$cont.toggleClass( cls[0] , cls[0].replace( cls[1],cls[1]+1 ) );
});
[未经测试]
答案 3 :(得分:0)
var regEx = /display-[\d]+/;
var currentObj = regEx.exec($(this).closest('.display-container').attr('class'))[0].split('-')[1];