使用RegEx&amp ;;选择班级名称(编号)。 jQuery的

时间:2013-11-26 08:45:57

标签: javascript jquery regex

我有这样的元素

<div class="th-class2 th-hhjjsd th-context-78474378437834873"></div>

(注意:我知道类名不应该是纯数字)

我想从这个div中得到数字。

id = 78474378437834873

有没有办法可以使用正则表达式来完成它。我几乎在那里,但它只返回前4个数字。

我使用clickevent来定位div并尝试获取类似

的类
var classString = $(this).prop("class").match(/([0-9]+)/)[1];;
console.log(classString)

结果为7847

我只是不明白如何获得剩下的数字。

由于

2 个答案:

答案 0 :(得分:2)

你不应该对类名使用整数,因为使用类通常意味着你将更多地使用元素一次并添加动态数字会破坏类的目的,也可以使用其他代码并且它们使用整数很难理解他们的代码。就你的问题而言,你不应该使用正则表达式来获取类的值,你应该将值存储为id,这样你的元素就会是这样,

<强> HTML

<div id="78474378437834873" class="th-class2 th-hhjjsd"></div>

或者您可以使用数据对象,就像我这样做,

<强> HTML

<div class="th-class2 th-hhjjsd" data-object='{"value":78474378437834873}'></div>

然后当您使用click事件选择元素以获取您单击的元素的值时,控制台会记录元素数据对象,如此

<强>的jQuery

$('.th-class2').click(function() {
     console.log($(this).data('object').value);
});

答案 1 :(得分:-1)

您不应该使用仅限数字的类名,它们必须以Alpha字符[a-Z]

开头

您可以在此讨论中找到允许的字符:Which characters are valid in CSS class names/selectors? (请务必阅读评论)。

根据您的解决方案, 简单的解决方案是使用数据属性:

<div data-id="1000"></div>

然后你可以让你的id变得如此简单:

$(this).on('click', function() { console.log($(this).data('id')); } );

快乐编码。