从数组创建链接列表

时间:2019-09-17 19:52:24

标签: javascript jquery google-apps-script

我正在尝试传递一个数组,并从该数组中的值返回一个链接列表。

这是我最终想要的

var list = ["Link 1", "Link 2", "Link 3"]

我尝试了几种不同的方法,但遇到了不同的错误。我希望有人可以指出正确的方向或指出问题所在。


  var list = document.createElement('ul').attr("id", "ticketList"); // Create the list element

  $.each(arr, function(i, arr) {
    $("#ticketList").append("<li><a href="'https://jeng.internal.com/browse/'+arr[i]+'"  id="'+arr[i]+'_link">'+arr[i]+'</a></li>");

    return list;
  }

我收到错误

  

未捕获的ReferenceError:onSearchClickHandler未定义

我也尝试过:

function makeUL(arr) {  

  var list = document.createElement('ul'); // Create the list element

  for (var i = 0; i < arr.length; i++) { //loop through the array to make the list
        var z = document.createElement('li');
        var item = '<a href="https://jeng.internal.com/browse/'+arr[i]+'"  id="'+arr[i]+'_link">'+arr[i]+'</a>';
        z.appendChild(item)
        list.appendChild(z); // Add it to the list
    }
    return list;
  }

由此我得到错误

  

未捕获的TypeError:无法在“节点”上执行“ appendChild”:参数1的类型不是“节点”。

我环顾四周,以this的问题和答案为基础,尝试在.innerHTML中添加,但是这使我回到最初的错误Uncaught ReferenceError

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

要获得预期的结果,请对您的代码进行以下更改

  1. 创建ul元素并附加到正文

    var list = document.createElement('ul'); //创建列表元素 $(“ body”)。append(list)

  2. 然后添加属性ID -ticketList

    $('ul')。attr(“ id”,“ ticketList”);

  3. 使用$ .each循环arr

工作代码以供参考

var arr = ["Link 1", "Link 2", "Link 3"]

var list = document.createElement('ul'); // Create the list element
$("body").append(list)
$('ul').attr("id", "ticketList");
  $.each(arr, function(i, arr) {
    $("#ticketList").append("<li><a href='https://jeng.internal.com/browse/"+arr+"'  id="+arr+"_link>"+arr+"</a></li>");
  })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

codepen-https://codepen.io/nagasai/pen/LYPJoaN?editors=1010