Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery/js拆分类_Jquery_Arrays_Split - Fatal编程技术网

使用jquery/js拆分类

使用jquery/js拆分类,jquery,arrays,split,Jquery,Arrays,Split,假设我想从类的后面抓取数字,例如:aside300-我会抓取300并将其分配给一个变量,或者aside320会将320分配给一个变量。 到目前为止,我已经了解了以下jQuery: $('[class*=aside]').each(function(index) { // For each of the elements that have a class containing aside var asidenum = $(this).attr('class') // Grab a

假设我想从类的后面抓取数字,例如:aside300-我会抓取300并将其分配给一个变量,或者aside320会将320分配给一个变量。 到目前为止,我已经了解了以下jQuery:

$('[class*=aside]').each(function(index) { // For each of the elements that have a class containing aside
        var asidenum = $(this).attr('class') // Grab all the classes on that element
                              .split("aside") // Split at aside
                              .pop(); // Pop the last item from the array (if aside is the last class then this is great, if not - not so great)
});
但是,正如您可能看到的,如果在'aside'类之后有任何内容,那么这将不起作用-例如,如果元素上的类是“aside300 anotherclass”-变量将是'300 anotherclass'

我想在空格处拆分,将每个类分配到数组中,但我不确定如何只获取“搁置”项并拆分该项以获取数字

如果有人有任何建议,或者如果我完全走错了方向,那就太好了

干杯


编辑:正如人们建议的数据属性,是的,我很想使用它,这是我的第一个想法,但不幸的是,这不是一个选项。

您可以这样做:

var num = $(this).attr('class').match(/\baside(\d+)\b/)[1];

但我强烈建议查看数据属性和。

在类上使用正则表达式\baside([0-9]+)\b来捕获数字。

如果有选项,可以执行以下操作:

<div class="aside" data-aside="320">
$('.aside').each(function() {
  var asidenum = $(this).data('aside');
});
或者在jQuery<1.4.3中,改用
.attr('data-aside')
。从上面可以看出,它有几个优点:代码更简单,可以使用CSS类,而且选择器效率更高


这在HTML5中是完全有效的,它无效,但在HTML4中工作正常,没有问题。

您必须使用class属性吗?在一旁使用
和值的数据属性如何?鉴于您的更新-只是出于好奇,是什么阻止您使用它?它们非常方便,所以我总是对为什么人们还不能使用它们感兴趣,为什么在你的情况下使用它们?CMS约束和现有代码,我很乐意使用它们,而且将来也会使用@user249950-明白了,谢谢你满足了我的好奇心:)是的,我同意那会好得多,但我担心它必须是这个类。@user249950-啊,太糟糕了(因为没有更好的描述),对不起!我将把这个留在这里,以防其他人发现你的问题可以使用这种方法。事实上,我相信你的答案将是其他人的用户。伙计,我希望我知道regex。。。它起作用了,但我现在要去弄清楚它的意思了,哈哈!我实际上考虑过使用match,但由于regex是一门外语,所以放弃了这个想法。谢谢@Felix Kling谢谢,我会查出来的。@user249950:正则表达式没那么难。它们看起来像“哦,我的上帝,我永远不会明白这个”,但如果你明白了基本的想法,那就相当简单了;)此正则表达式的工作原理如下:
\b
序列需要在给定位置设置单词边界。这意味着“字符串结束”、“字符串开始”或“空白”
aside
需要字符串“aside”所在位置<代码>\d
匹配一个数字(0-9)。之后的
+
需要一个或多个
\d
匹配项。
\d+
周围的括号是匹配组。这会将两者之间匹配的所有内容添加到结果列表(偏移量1)。