是否可以像这样'something-20‘获取自定义属性?
例如,假设它是在<div class="somecustomClass something-20"></div>
中
我想对19进行分级,这样我就可以操作它了,因为css的块是从-1到-100
我使用了下面的代码来检索标签id:
tabId = $('li').find('a').attr('href').replace('#tab', '');
这是相同的方法吗?
发布于 2013-10-11 14:21:23
这不是一个自定义属性,它是一个类。您必须获取整个类字符串,然后可能使用正则表达式来查找所需的值。
使用data-
属性会更容易:
<div class="somecustomClass" data-something="20"></div>
JS:
var value = $('.somecustomClass').data('something'); // 20
发布于 2013-10-11 14:24:58
如果你想让它成为一个自定义属性,我建议你按照Jason在回答中所说的那样做。但是,如果您想获取something-#
元素并对其执行某些操作,则可以执行以下操作。
for(var i=1;i<=100;i++) {
var el = $('.something-'+i);
//do something with the element to manipulate it
}
发布于 2013-10-11 14:51:24
相似的。tab id的作用是3件事。
第1部分是选择正确的元素。
第2部分是获取包含所需数据的属性的值
第3部分是使用正则表达式获取我们想要的数据的特定位
对于第1部分,我不确定您使用什么来标识这些块,以便选择它们。
您可以使用$('class^="something"')来获取具有以文本'something‘开头的类的所有元素,但这将非常慢。如果你可以使用像$('.somecustomClass')这样的东西,它的性能会更好。
如果你只是想调整你遇到的第一个匹配元素,你可以这样做:
$('.somecustomClass').className.replace(/.*?\bsomething-(\d+).*/gi,myNumber = var "$1");
如果您已经熟悉正则表达式,请原谅,但对于其他读者,这是它所做的工作的细分:
.*?表示不贪婪地选择零个或多个字符,\b表示单词边界,然后查找文本'something-‘,后跟一个或多个数字。在它周围放置括号可以捕获它在那里找到的内容。以防你在than之后有类,它也有.*来获取零个或更多的字符来查找它们。/gi在最后意味着通过类全局查看,我的意思是不区分大小写。$1作为replace函数的第二个参数是捕获的数字。
https://stackoverflow.com/questions/19320436
复制相似问题