2012-02-16 56 views
0

上飛「A」的標籤我有一個「A」名單如下:生成使用jQuery

<div id="page"> 

<a href="#">2</a> 
<a href="#">3</a> 
<a href="#">4</a> 

</div> 

現在我必須設置列表作爲HTML,但因爲我要使用〜 500次'a'我需要它作爲一些jquery事件的結果生成。

「一個」標籤的總量是由SomeFunction();

我怎麼能產生(例如上。點擊)給出的「A」標籤由SomeFunction();給出確切的金額是多少?

ps還應該生成html數字。

+2

你有什麼嘗試?以常規的Javascript循環以及在jQuery中創建和附加DOM元素並不是特別困難的概念,並且使用Google可以找到大量信息。 – 2012-02-16 10:06:20

+0

我不會問,如果我沒有谷歌搜索它。 – Youss 2012-02-16 10:07:30

+0

[使用jQuery創建DOM元素]的可能重複(http://stackoverflow.com/questions/7586896/create-dom-element-with-jquery) – 2012-02-16 10:11:13

回答

4

假設SomeFunction()多次簡單地返回一個整數:

$("#myButton").click(function() { 
    var count = SomeFunction(); 
    var aElements = ""; 

    for (var i = 0; i < count; i++) { 
     aElements += "<a href=\"#\">" + i + "</a>"; 
    } 

    $("#page").append(aElements); 
}); 

Example fiddle

請勿撥打append()其他人所建議的500倍 - 這將會非常慢。

+0

當我點擊按鈕我沒有看到任何html'a'標籤.. – Youss 2012-02-16 10:12:26

+0

真的嗎?我看到它們中的500個:) – 2012-02-16 10:13:31

+0

非常感謝你,一定會使用這個!:)(我花了一天半在這..) – Youss 2012-02-16 10:14:41

0
$('#page').append($('<a>...</a>')); 

,因爲你需要

0
$('#myButton').click(function(){ 
    var number = SomeFunction(); 
    for(var i=0; i<number; i++){ 
    $('#page').append('<a href="whatever.com">Text here</a>'); 
    } 
}); 
0
// Returns an array with num links 
function createLinks(num) { 
    var links = []; 
    for(var i = 0; i < num; i++) { 
    links.push($("<a>").attr("href", "#").text(i)); 
    } 
    return links; 
} 

// When someButton is clicked 
$(someButton).on("click", function() { 
    // Create as many links as specified by SomeFunction and append them to #page 
    $("#page").append(createLinks(SomeFunction())); 
}); 
0
function generateAnchors(count){ 
    var target = $('#page'), str=''; 
    for(var i = 0; i < count; i+=1){ 
     str += "<a href='#'>" + i + "</a>"; 
    } 
    target.empty().append(str); 
} 
0
​ function getATagCount() 
    { 
    return 100; 
    } 


    $("<click on what>").click(function() 
    { 
     var aArray=[]; 
    for(var i=0;i<getATagCount();i++) 
    { 
     aArray.push('<a href="#">'+i+'</a>'); 
    } 
    $("#page").append(aArray.join(" ")); 
    })​;​ 

這是你想要的嗎?

2

爲什麼你需要將所有這些包裝在jQuery中,因爲它可以通過自己訪問DOM輕鬆且更高效地創建?

function SomeFunction(len) { 
    var i, 
     a, 
     coll = document.createDocumentFragment(); 
     for (i = 1; i <= len; i+=1) { 
      a = document.createElement("a"); 
      a.href = "#"; 
      a.appendChild(document.createTextNode(i)); 
      coll.appendChild(a);    
     } 
    document.getElementById("page").appendChild(coll); 
} 

    SomeFunction(5); 

幾件事情,你想要做的:

  • 修改每個元素創建的DOM(使用文檔片段創建集合),以避免迴流
  • 尋找 「頁」 上的每個加

例如:http://jsfiddle.net/ShvUc/