将每个拆分结果与每个类元素进行比较
Posted
技术标签:
【中文标题】将每个拆分结果与每个类元素进行比较【英文标题】:Compare each splitted result with each class element 【发布时间】:2017-06-14 03:08:12 【问题描述】:var data = 'sky,sea,earth,moon';
var a = data.split(","), i;
for (i = 0; i < a.length; i++)
var b = a[i].text();
$('mdcatsitem').each(function()
if (b == $(this).text()) $(this).addClass('toggleright');
);
控制台:Uncaught TypeError: a[i].text is not a function
我需要什么:
- 将data
拆分为多个部分;
- 获取each
部分的文本并将其与each
mdcatsitem
的文本进行比较;
- 如果匹配 - 添加一个类到mdcatsitem
【问题讨论】:
$('mdcatsitem').filter(function(i, el) return a.includes(el.textContent) ).addClass('toggleright')
【参考方案1】:
将a[i].text()
替换为a[i]
。
a[i]
不是 dom 元素 而是 字符串。 a
是 split
data
之后的数组。
a = ['sky', 'sea', 'earth', 'moon']
使用此代码:
var data = 'sky,sea,earth,moon';
var a = data.split(","), i;
for (i = 0; i < a.length; i++)
var b = a[i];
$('mdcatsitem').each(function()
if (b == $(this).text()) $(this).addClass('toggleright');
);
【讨论】:
【参考方案2】:你为什么在字符串上调用.text()
?
data
是一个分隔字符串,在你调用 .split()
之后,a
只是一个字符串数组:
['sky', 'sea', 'earth', 'moon']
当循环a
时,你可以直接引用a[i]
作为你想要的字符串:
var b = a[i];
// b now equals the string, such as 'sky' or 'sea'
【讨论】:
以上是关于将每个拆分结果与每个类元素进行比较的主要内容,如果未能解决你的问题,请参考以下文章