我正在尝试传递一个数组,并从该数组中的值返回一个链接列表。
这是我最终想要的
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
任何帮助将不胜感激。
答案 0 :(得分:1)
要获得预期的结果,请对您的代码进行以下更改
创建ul
元素并附加到正文
var list = document.createElement('ul'); //创建列表元素 $(“ body”)。append(list)
然后添加属性ID -ticketList
$('ul')。attr(“ id”,“ ticketList”);
工作代码以供参考
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>