Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 通配符:获取具有类的元素,这些类与静态字符串仅多出一个字符_Jquery - Fatal编程技术网

Jquery 通配符:获取具有类的元素,这些类与静态字符串仅多出一个字符

Jquery 通配符:获取具有类的元素,这些类与静态字符串仅多出一个字符,jquery,Jquery,我想使用通配符,但只用于那些除了静态字符串之外还有一个字符的类 这是: 让我们解释一下。如果我有这两个要素: <div class="foo_1"></div> <div class="foo_1_other_characters"></div> 我明白了 <div class="foo_1">bar</div> <div class="foo_1_other_characters">bar</div&g

我想使用通配符,但只用于那些除了静态字符串之外还有一个字符的类

这是:

让我们解释一下。如果我有这两个要素:

<div class="foo_1"></div>
<div class="foo_1_other_characters"></div>
我明白了

<div class="foo_1">bar</div>
<div class="foo_1_other_characters">bar</div>

使用jQuery是否可以实现这一点?

您可以使用
$.fn.filter
并返回一个布尔值来筛选出您想要的内容

$('[class]').filter(function(){
   return /\bfoo_.(\s|$)/.test(this.className);
});

您可以使用
$.fn.filter
并返回一个布尔值来筛选出您想要的内容

$('[class]').filter(function(){
   return /\bfoo_.(\s|$)/.test(this.className);
});

您可以使用
$.fn.filter
并返回一个布尔值来筛选出您想要的内容

$('[class]').filter(function(){
   return /\bfoo_.(\s|$)/.test(this.className);
});

您可以使用
$.fn.filter
并返回一个布尔值来筛选出您想要的内容

$('[class]').filter(function(){
   return /\bfoo_.(\s|$)/.test(this.className);
});

您可以过滤掉那些在您提供的字符串中间隔超过1个字符的字符串:

var cls=“foo_”;
//筛选所有包含子字符串“foo_”的类
$('[class*='+cls+']')。筛选器(函数(){
//清除旗帜
var标志=假;
//循环每个元素并获取其类列表
var classes=$(this.attr(“class”).split(/\s+/);
//在类集合上循环
类.forEach(函数(val,id){
//检查类是否以“foo_”开头,而不仅仅包含它,
//并检查类是否比“foo_”长1个字符
if(类[id]。子字符串(0,cls.length)==cls&&classes[id]。长度==cls.length+1){
//弄平
flag=true;
}
});
返回标志;
}).html(“bar”)
.green,
红色
蓝先生{
宽度:100px;
高度:25px;
显示:块;
}
格林先生{
边框:1px纯绿色;
}
瑞德先生{
边框:1px纯红;
}
蓝先生{
边框:1px纯蓝色;
}

您可以过滤掉那些与您提供的字符串相距超过1个字符的字符串:

var cls=“foo_”;
//筛选所有包含子字符串“foo_”的类
$('[class*='+cls+']')。筛选器(函数(){
//清除旗帜
var标志=假;
//循环每个元素并获取其类列表
var classes=$(this.attr(“class”).split(/\s+/);
//在类集合上循环
类.forEach(函数(val,id){
//检查类是否以“foo_”开头,而不仅仅包含它,
//并检查类是否比“foo_”长1个字符
if(类[id]。子字符串(0,cls.length)==cls&&classes[id]。长度==cls.length+1){
//弄平
flag=true;
}
});
返回标志;
}).html(“bar”)
.green,
红色
蓝先生{
宽度:100px;
高度:25px;
显示:块;
}
格林先生{
边框:1px纯绿色;
}
瑞德先生{
边框:1px纯红;
}
蓝先生{
边框:1px纯蓝色;
}

您可以过滤掉那些与您提供的字符串相距超过1个字符的字符串:

var cls=“foo_”;
//筛选所有包含子字符串“foo_”的类
$('[class*='+cls+']')。筛选器(函数(){
//清除旗帜
var标志=假;
//循环每个元素并获取其类列表
var classes=$(this.attr(“class”).split(/\s+/);
//在类集合上循环
类.forEach(函数(val,id){
//检查类是否以“foo_”开头,而不仅仅包含它,
//并检查类是否比“foo_”长1个字符
if(类[id]。子字符串(0,cls.length)==cls&&classes[id]。长度==cls.length+1){
//弄平
flag=true;
}
});
返回标志;
}).html(“bar”)
.green,
红色
蓝先生{
宽度:100px;
高度:25px;
显示:块;
}
格林先生{
边框:1px纯绿色;
}
瑞德先生{
边框:1px纯红;
}
蓝先生{
边框:1px纯蓝色;
}

您可以过滤掉那些与您提供的字符串相距超过1个字符的字符串:

var cls=“foo_”;
//筛选所有包含子字符串“foo_”的类
$('[class*='+cls+']')。筛选器(函数(){
//清除旗帜
var标志=假;
//循环每个元素并获取其类列表
var classes=$(this.attr(“class”).split(/\s+/);
//在类集合上循环
类.forEach(函数(val,id){
//检查类是否以“foo_”开头,而不仅仅包含它,
//并检查类是否比“foo_”长1个字符
if(类[id]。子字符串(0,cls.length)==cls&&classes[id]。长度==cls.length+1){
//弄平
flag=true;
}
});
返回标志;
}).html(“bar”)
.green,
红色
蓝先生{
宽度:100px;
高度:25px;
显示:块;
}
格林先生{
边框:1px纯绿色;
}
瑞德先生{
边框:1px纯红;
}
蓝先生{
边框:1px纯蓝色;
}



可能吗?对它会有效率吗?不,一点也不。@DavidThomas谢谢,现在已经修好了,你为什么需要它?听起来无论你想做什么,都有更好的方法。可能您还没有使用呈现的HTML标记。在这种情况下,也许你的问题是有道理的。仅供参考,类属性不应用于datas@A.Wolff我在单击的元素和目标元素(要选择的元素)之间有元素,它们的类名与目标元素类相似。
我在单击的元素和目标元素之间有元素
我不确定我是否理解它,您应该提供在线示例,将您的问题复制为JSFIDLE。但无论如何,为什么不使用独特的类,例如:
barquz
?可能吗?对它会有效率吗?不,一点也不。@DavidThomas谢谢,现在已经修好了,你为什么需要它?听起来无论你想做什么,都有更好的方法。可能您还没有使用呈现的HTML标记。在这种情况下,也许你的问题是有道理的。仅供参考,类属性不应用于datas@A.Wolff我在单击的元素和目标元素(要选择的元素)之间有元素,它们的类名与目标元素类相似。
我在单击的元素和目标元素之间有元素
我不确定是否在