2

我有一个这样的数组:

var name = ["cat","shark","tiger","snake"];

我想将数组内容设置为<span>标题。

HTML 代码:

<ul id="select">
    <li class="ui-state-default"><span>CAT</span></li>
    <li class="ui-state-default"><span>SHARK</span></li>
    <li class="ui-state-default"><span>TIGER</span></li>
    <li class="ui-state-default"><span>SNAKE</span></li>
</ul>

jQuery代码:

for(var i=0; i<=name.length; i++){
        $('#select li > span').each(function() {
        this.title = name[i];
        });
    }; 

但这段代码不起作用。跨度的标题是未定义的。

4

3 回答 3

3

如果title您指的是 的文本span我建议:

$('#select li span').text(function(i){
    return name[i];
});

JS 小提琴演示

或者,如果您尝试设置 title属性,我建议:

$('#select li span').attr('title',function(i){
    return name[i];
});

JS 小提琴演示

于 2013-03-09T17:11:48.483 回答
0

遍历跨度和数组是没有意义的。这也i <= name.length意味着您将始终循环通过数组(应该是<)。这意味着您实际上将每个跨度的标题设置为一个不存在的数组元素。

$('#select li > span').each(function(i) {
    $(this).attr('title', name[i]);
});

您可能还想检查它是否name[i]存在。

http://jsfiddle.net/wtbE5/

于 2013-03-09T17:13:16.013 回答
0

尝试:

$('#select li span').each(function(i){
    $(this).html(name[i]);
});

样本

于 2013-03-09T17:13:28.823 回答