将每个拆分结果与每个类元素进行比较

时间:2017-01-28 14:22:27

标签: javascript jquery arrays string jquery-selectors

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

2 个答案:

答案 0 :(得分:1)

为什么要在字符串上调用.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'

答案 1 :(得分: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');}
    });
}