获取自定义属性的值

时间:2013-10-11 14:16:59

标签: javascript jquery

是否可以获取像'something-20'这样的自定义属性

例如,它位于<div class="somecustomClass something-20"></div>

我想要对19进行评分,以便我可以操纵它,因为css阻止了从-1到100的东西

我使用下面的代码来检索标签ID:

tabId = $('li').find('a').attr('href').replace('#tab', '');

是同样的方法吗?

3 个答案:

答案 0 :(得分:4)

这不是自定义属性,而是一个类。您必须获取整个类字符串,然后可能使用正则表达式来查找所需的值。

使用data-属性会更容易:

<div class="somecustomClass" data-something="20"></div>

JS:

var value = $('.somecustomClass').data('something'); // 20

答案 1 :(得分:0)

如果你想让它成为一个自定义属性我建议你做杰森在他的回答中说的话。但是如果你想抓住something-#元素并对它们做些什么,你可以做以下事情。

for(var i=1;i<=100;i++) {
    var el = $('.something-'+i);
    //do something with the element to manipulate it
}

答案 2 :(得分:0)

类似。标签ID的作用是3件事

第1部分是选择正确的元素。

第2部分是获取包含我们想要的数据的属性的值

第3部分通过正则表达式

获取我们想要的数据的特定位

对于第1部分,我不确定您使用什么来识别这些块以便选择它们。

你可以让$('[class ^ =“something”]')获得所有具有以文本'something'开头的类的元素,但这将非常慢。如果你可以使用类似$('。somecustomClass')的东西,它会表现得更好。

如果你只是想调整你遇到的第一个匹配元素,你可以这样做:

var myNumber = $('。somecustomClass')[0] .className.replace(/.*?\ bsomething \ - (\ d +)。* / gi,“$ 1”);

如果你已经熟悉正则表达式,请道歉,但对于其他读者来说,这是它的作用细分:

。*?表示非贪婪地选择零个或多个字符,\ b表示单词边界,然后它找到文本'something-'后跟一个或多个数字。在它周围放置括号可以捕获它在那里找到的东西。如果你之后有类,它有。*获得零个或多个字符也可以找到它们。 / gi的结尾意味着通过类看全局,我的意思是不区分大小写。 $ 1作为替换函数的第二个参数是捕获的数字。