在循环内动态添加列表

时间:2012-07-19 09:15:04

标签: javascript jquery

在这个小提琴按钮中,在循环中动态附加。如何更新代码,以便每个按钮只在循环中添加一次而不是多次?我认为这是因为克隆方法?

http://jsfiddle.net/8JXTT/9/

小提琴代码:

<div data-role="page" id="firstpage">

        <div data-role="header">
                <h1>First Page</h1>
        </div>

<div data-role="content" id="links">
        <a href="#secondpage" data-role="button">Link button</a>
</div>

        <div data-role="footer">
                <h4>Page Footer</h4>
        </div>

</div>

<div data-role="page" id="secondpage">

        <div data-role="header">
                <a href='#' class='ui-btn-left' data-icon='arrow-l' onclick="history.back(); return false">Back</a><h1>Bar</h1><a href="#firstpage">home</a>
        </div>

        <div data-role="content">
                <p>I'm first in the source order so I'm shown as the page. (this is secondpage)</p>
                <p><a href="#thirdpage">Go to third page</a></p>
        </div>

        <div data-role="footer">
                <h4>Page Footer</h4>
        </div>
</div>
​
$(document).ready(function() {

    for (var i = 0; i < 4; i++) {
    var linkButton = $('#links a').clone(true);
    linkButton.find('span.ui-btn-text').text('Link Button2');
    $('#links').append(linkButton);
}

});​

1 个答案:

答案 0 :(得分:1)

$(document).ready(function() {
    for (var i = 0; i < 4; i++) {
      var linkButton = $('#links a:first').clone(true); // clone first one only
      linkButton.find('span.ui-btn-text').text('Link Button2');
      $('#links').append(linkButton);
    }
});​

Demo

$(document).ready(function() {
    var linkButton = $('#links a').clone(true); // keep reference outside of loop
    for (var i = 0; i < 4; i++) {
      linkButton.find('span.ui-btn-text').text('Link Button2');
      $('#links').append(linkButton.clone(true));
    }
});

Demo

在您的代码clone()方法中,每个回合中a都会复制所有#links标记。