2012-02-16 30 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/