2

我有一个这样的 HTML:

<dl>
    <dt class="tab-title">Title</dt>
    <dd class="tab-content">Ain't Life Grand</dd>
</dl>

JS 之后的最终 HTML 需要如下所示:

<dl>
    <dt class="tab-title">Title</dt>
    <dd class="tab-content">Ain't Life Grand</dd>
    <dt class="tab-title">Another Title</dt>
    <dd class="tab-content">Ain't Life Grand again</dd>
    <dt class="tab-title">How'about Another</dt>
    <dd class="tab-content">Ain't Life Grand last!</dd>
</dl>

我到目前为止的JS如下:

<script type="text/javascript">
    var arrayData = {
        titletwo: {
            title: 'Another Title',
            html: 'Ain\'t Life Grand again'
        },
        titlethree: {
            title: 'How\'about Another',
            html: 'Ain\'t Life Grand last!'
        }
    }
    for (var key in arrayData) {
        var obj = arrayData[key];
            $$('dl').insert('<dt class="tab-title">'.obj['title'].'</dt>');
        $$('dl').insert('<dd class="tab-content">'.obj['title'].'</dd>');
    }
</script>

它似乎没有做任何事情。请投稿!

4

1 回答 1

0

你的方法很好,只是你做错了这两行:

$$('dl').insert('<dt class="tab-title">'.obj['title'].'</dt>');
$$('dl').insert('<dd class="tab-content">'.obj['title'].'</dd>');

因为这个,我可以告诉你来自 PHP;.不进行连接,+而是使用:

$$('dl').insert('<dt class="tab-title">' + obj['title'] + '</dt>');
$$('dl').insert('<dd class="tab-content">' + obj['title'] + '</dd>');

并不是说它是一个错误,而是一个简单的优先样式问题,使用点运算符.从对象文字中查询键值对,如下所示(以下是等效的):

$$('dl').insert('<dt class="tab-title">' + obj.title + '</dt>');

obj[ "..." ][在动态查询这些值时使用括号表示法。]

于 2012-11-10T12:52:31.530 回答