1

我试图了解 jQuery 中的数组。让我们看下面的场景。我有一组数据,如下所示:

var myVariable = [
    'key1' : 'value1',
    'key2' : 'value2',
    'key3' : 'value3',
    'key4' : 'value4'
] 

这是一个元素列表:

<ul id="elem">
    <li class="key1">Item 1</li>
    <li class="key2">Item 2</li>
    <li class="key3">Item 3</li>
    <li class="key4">Item 4</li>
</ul>

if statement如果在数组中标识了类然后替换文本内容,我将如何创建一个遍历每个元素的方法?所以最终的输出应该是:

<ul id="elem">
    <li class="key1">key1</li>
    <li class="key2">key2</li>
    <li class="key3">key3</li>
    <li class="key4">key4</li>
</ul>

我尝试了以下方法,但它似乎不起作用。

$('#elm li').each(function (index) {
    $(this).text(myVariable[index]);
});

我意识到 JS 中没有关联数组,但我并不真正了解它是如何工作的。

请直接指出我的正确方向。谢谢!!

4

3 回答 3

3

单程:

$("#elem li").text(function(i, text) {
    return this.className in myVariable
         ? myVariable[this.className] : text;
});

另一种方式:

$.each(myVariable, function(key, value) {
    $("#elem li." + key).text(value);
});

注意:在 JavaScript 中,非数字键的数组是对象,应该用 包围{},但不能用包围[],就像在普通数组中一样。

于 2013-07-22T15:02:44.553 回答
2

尝试这个...

var myVariable = {
    'key1' : 'value1',
    'key2' : 'value2',
    'key3' : 'value3',
    'key4' : 'value4'
};
$("#elem li").text(function() {
    return myVariable[this.className] == '' ? this.text(): myVariable[this.className];
});

在这里工作的小提琴 PS:我知道它与第一个答案相似,但我在发布这个答案后看到了它:(

于 2013-07-22T15:14:46.923 回答
0
$( '#elm li').each( function() {  
    var text = myVariable[ $( this ).className ] ? myVariable[ $( this ).className ] : '';   
    $( this ).text( text );   
});
于 2013-07-22T15:47:53.517 回答