是否可以获取像“something-20”这样的自定义属性
比如说它在<div class="somecustomClass something-20"></div>
我想毕业 19 以便我可以操纵它,因为 css 有从 something-1 到 something-100 的块
我使用下面的代码来检索标签 ID:
tabId = $('li').find('a').attr('href').replace('#tab', '');
是一样的方法吗?
是否可以获取像“something-20”这样的自定义属性
比如说它在<div class="somecustomClass something-20"></div>
我想毕业 19 以便我可以操纵它,因为 css 有从 something-1 到 something-100 的块
我使用下面的代码来检索标签 ID:
tabId = $('li').find('a').attr('href').replace('#tab', '');
是一样的方法吗?
这不是自定义属性,而是一个类。您必须获取整个类字符串,然后可能使用正则表达式来查找您想要的值。
data-
使用属性会更容易:
<div class="somecustomClass" data-something="20"></div>
JS:
var value = $('.somecustomClass').data('something'); // 20
如果您希望它成为自定义属性,我建议您按照 Jason 在回答中所说的去做。但是,如果您想获取something-#
元素并对它们做一些事情,您可以执行以下操作。
for(var i=1;i<=100;i++) {
var el = $('.something-'+i);
//do something with the element to manipulate it
}
相似的。tab id 的作用是 3 件事
第 1 部分是选择正确的元素。
第 2 部分是获取包含我们想要的数据的属性的值
第 3 部分是使用正则表达式获取我们想要的特定数据位
对于第 1 部分,我不确定您使用什么来识别这些块以选择它们。
您可以使用 $('[class^="something"]') 来获取所有具有以文本“某物”开头的类的元素,但这会很慢。如果你可以使用类似 $('.somecustomClass') 的东西,它会表现得更好。
如果你只是想调整你遇到的第一个匹配元素,你可以这样做:
var myNumber = $('.somecustomClass')[0].className.replace(/.*?\bsomething\-(\d+).*/gi, "$1");
如果您已经熟悉正则表达式,我们深表歉意,但对于其他读者来说,这是它的作用的细分:
.*? 表示非贪婪地选择零个或多个字符,\b 表示单词边界,然后它会找到文本 'something-' 后跟一个或多个数字。在它周围加上括号可以捕捉它在那里找到的东西。以防万一你有课,它也有 .* 来获取零个或多个字符来找到它们。最后的 /gi 意味着通过类全局查看,我的意思是不区分大小写。$1 作为替换函数的第二个参数是捕获的数字。