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()无疑是一个不错的选择!