jQuery使用if语句中的数组数据

jQuery using array data within an if statement

本文关键字:数组 数据 语句 使用 if jQuery      更新时间:2023-09-26

我正试图了解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中没有关联数组,但我并不真正理解它是如何工作的。

请给我指正路。谢谢

单向:

$("#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中,带有非数字键的数组是对象,应该用{}包围,而不是像普通数组那样用[]包围。

试试这个。。。

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

在这里工作附言:我知道它和第一个答案相似,但我在发布这个答案后看到了:(

$( '#elm li').each( function() {  
    var text = myVariable[ $( this ).className ] ? myVariable[ $( this ).className ] : '';   
    $( this ).text( text );   
});