动态创建的列表需要链接

时间:2014-04-29 13:18:05

标签: javascript jquery html json loops

我已成功从JSON响应中创建了一个列表...

function loadList() {
   $.getJSON("http://www.JSONURLDATA/TEST", function (Cust) {
      var ul = $('<ul>').appendTo('#custList');
      for (var i = 0; i < Cust.Customers.length; i++) {
         ul.append($(document.createElement('li')).text('(' + Cust.Customers[i].Keycode + ') ' + Cust.Customers[i].Name));
         console.log(Cust.Customers[i].Name);
      }
   })
}

是否可以在此循环中创建href部分?

3 个答案:

答案 0 :(得分:0)

这样想:

您已经设置了动态元素的内容,如下所示:

(yourNewItem).text('(' + Cust.Customers[i].Keycode + ') ' + Cust.Customers[i].Name)

您还可以设置您想要的任何属性:

(yourNewItem).attr("attributeName", "value");

所以在你的情况下:

(yourNewItem).attr("href", "http://www.google.com");

是的,您可以直接将其粘贴到.text()调用中,这些方法完全可以链接:)

编辑<li>元素没有意义。但重点是,您可以使用该方法在任何(再次,我认为)元素上设置任何(我认为。也许是一个罕见的例外)属性。

如果我没记错,您甚至可以使用该方法创建自己的属性。不是我建议你这样做;我只想解释这种方法的普遍性:)

答案 1 :(得分:0)

是的,这是可能的。这是一种方式:

ul.append(
    $(document.createElement('li'))
        .text(
            $(document.createElement('a'))
                .attr('href', 'whatever_you_like')
                .html('(' + Cust.Customers[i].Keycode + ') ' + Cust.Customers[i].Name)
        )
);

此代码在li代码中添加了一个链接。

答案 2 :(得分:0)

而不是

ul.append($(document.createElement('li')).text('(' + Cust.Customers[i].Keycode + ') ' + Cust.Customers[i].Name));

待办事项

ul.append(
  $("<li></li>").append(
     $("<a></a>").attr("href","URL").text('(' + Cust.Customers[i].Keycode + ') ' + Cust.Customers[i].Name)
  )
);