Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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/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
Javascript 当串在一起时,查询内部的JS var不起作用_Javascript_Jquery_Contains - Fatal编程技术网

Javascript 当串在一起时,查询内部的JS var不起作用

Javascript 当串在一起时,查询内部的JS var不起作用,javascript,jquery,contains,Javascript,Jquery,Contains,我有以下代码,这是真的臃肿 $(".field-name-field-parts-status .field-item:contains('Submitted'), .field-name-field-parts-status .field-item:contains('Saved'), .field-name-field-parts-status .field-item:contains('HMNZ Approved')").addClass('btn-primary'); 我试图通过添加一

我有以下代码,这是真的臃肿

$(".field-name-field-parts-status .field-item:contains('Submitted'), .field-name-field-parts-status .field-item:contains('Saved'), .field-name-field-parts-status .field-item:contains('HMNZ Approved')").addClass('btn-primary');
我试图通过添加一个
var

var fieldItemStatus = $(".field-name-field-parts-status .field-item");
看起来是这样的

$(fieldItemStatus + ":contains('Submitted'), " + fieldItemStatus + ":contains('Saved'), " + fieldItemStatus + ":contains('HMNZ Approved')").addClass('btn-primary');

但它停止了工作,有人能告诉我我做错了什么吗?谢谢,因为您正在尝试将jQuery对象和字符串添加到一起。它不是那样工作的

var fieldItemStatus = $(".field-name-field-parts-status .field-item");
应该是字符串

var fieldItemStatus = ".field-name-field-parts-status .field-item";

另一个选项是使用过滤器。

,因为您正在尝试将jQuery对象和字符串添加到一起。它不是那样工作的

var fieldItemStatus = $(".field-name-field-parts-status .field-item");
应该是字符串

var fieldItemStatus = ".field-name-field-parts-status .field-item";

另一个选项是使用过滤器。

您可以使用
过滤器
方法:

fieldItemStatus.filter(":contains('Submitted'), :contains('Saved'), :contains('HMNZ Approved')").addClass('btn-primary');
另一个选项是使用
过滤器
回调函数:

var items = ['Submitted', 'Saved', 'HMNZ Approved'];
fieldItemStatus.filter(function(_, el) {
   return items.some(function(item) {
      return el.textContent.indexOf(item) > -1;
   });  
});

.

您可以使用
筛选方法:

fieldItemStatus.filter(":contains('Submitted'), :contains('Saved'), :contains('HMNZ Approved')").addClass('btn-primary');
另一个选项是使用
过滤器
回调函数:

var items = ['Submitted', 'Saved', 'HMNZ Approved'];
fieldItemStatus.filter(function(_, el) {
   return items.some(function(item) {
      return el.textContent.indexOf(item) > -1;
   });  
});
.

您需要使用.filter()

fieldItemStatus
是一个对象,因此
fieldItemStatus+”:contains('Submitted'),“+fieldItemStatus+”:contains('Saved'),“+fieldItemStatus+”:contains('HMNZ Approved')
将创建一个字符串,如
[Object Object]:contains('Saved'),[Object Object]:contains('HMNZ Approved')
您需要使用的过滤器()

fieldItemStatus
是一个对象,因此
fieldItemStatus+”:contains('Submitted'),“+fieldItemStatus+”:contains('Saved'),“+fieldItemStatus+”:contains('HMNZ Approved')
将创建一个类似以下的字符串:
[Object Object]:contains('Saved'),[Object Object]:contains('Saved'),[Object Object Object]:contains('HMNZ Approved

删除fieldItemStatus前面的$

 var fieldItemStatus = ".field-name-field-parts-status .field-item";

删除fieldItemStatus前面的$

 var fieldItemStatus = ".field-name-field-parts-status .field-item";

因为您想使用jQuery对象来连接字符串。正确的方法是一直使用字符串

var fieldItemStatus = ".field-name-field-parts-status .field-item";
$(fieldItemStatus + ":contains('Submitted'), " + fieldItemStatus + ":contains('Saved'), " + fieldItemStatus + ":contains('HMNZ Approved')").addClass('btn-primary');

因为您想使用jQuery对象来连接字符串。正确的方法是一直使用字符串

var fieldItemStatus = ".field-name-field-parts-status .field-item";
$(fieldItemStatus + ":contains('Submitted'), " + fieldItemStatus + ":contains('Saved'), " + fieldItemStatus + ":contains('HMNZ Approved')").addClass('btn-primary');

更具程序性的方法。这样,如果您想轻松地更改选择器,只需更改contains数组即可。您可以将其转换为一个函数,以便在脚本中的其他位置根据需要轻松检索选择器

var contains = ['Submitted','Saved','HMNZ Approved'];
var selector = '';
for(var i = 0; i < contains.length; i++) {
    selector += '.field-name-field-parts-status .field-item:contains("' + contains[i] + ')';
    if(i < contains.length - 1) selector += ', ';
}
$(selector).addClass('btn-primary');
var contains=['Submitted'、'Saved'、'HMNZ Approved'];
var选择器=“”;
对于(变量i=0;i
一种更为程序化的方法。通过这种方法,如果您想轻松更改选择器,只需更改contains数组。您可以将其转换为一个函数,以便在脚本中的其他位置根据需要轻松检索选择器

var contains = ['Submitted','Saved','HMNZ Approved'];
var selector = '';
for(var i = 0; i < contains.length; i++) {
    selector += '.field-name-field-parts-status .field-item:contains("' + contains[i] + ')';
    if(i < contains.length - 1) selector += ', ';
}
$(selector).addClass('btn-primary');
var contains=['Submitted'、'Saved'、'HMNZ Approved'];
var选择器=“”;
对于(变量i=0;i
感谢大家的快速回答,而.filter()无疑是一个不错的选择!感谢大家的快速回答,而.filter()无疑是一个不错的选择!