我想比较两个数组,如果它们相等,则向html添加一个新属性。
首先是我的html
<ul class="checkout__delivery-collect-shoplist" data-bind="foreach: currentOptions ">
<li class="checkout__delivery-collect-shop js-delivery-item active">
<h6><em data-bind="text: label">Name1</em></h6>
</li>
<li class="checkout__delivery-collect-shop js-delivery-item">
<h6><em data-bind="text: label">Name2</em></h6>
</li>
</ul>
首先我要创建带有文本的新数组
var arr = [];
jQuery('em[data-bind="text: label"]').each(function() {
arr.push(jQuery(this).text().split(';'));
});
另外,我还有另一个文本数组
var Managerss = Manager.GlobalData[2].options
Managerss.filter(x => x.payment_checkmo === '1').map(x => x.label);
它将给予
["Name1", "Name2"]
0: "Name1"
1: "Name2"
length: 2
__proto__: Array(0)
因此,我首先需要比较这些数组,如果为true,则创建新属性data-payment = '0'
至li.class checkout__delivery-collect-shop js-delivery-item
我想要的例子
<ul class="checkout__delivery-collect-shoplist" data-bind="foreach: currentOptions ">
<li class="checkout__delivery-collect-shop js-delivery-item active" data-payment='0'>
<h6><em data-bind="text: label">Name1</em></h6>
</li>
<li class="checkout__delivery-collect-shop js-delivery-item" data-payment='0'>
<h6><em data-bind="text: label">Name2</em></h6>
</li>
</ul>
function Compare()
{
var a = ['Name 1', 'Name 2', 'Name 3'];
var b = ['Name 1', 'Name 2', 'Name 3'];
// if length is not equal
if(a.length!=b.length)
return "False";
else
{
// comapring each element of array
for(var i=0;i<a.length;i++)
if(a[i]!=b[i])
return "False";
return "True";
}
}
var v = Compare();
document.write(v);