求助:js 无法使用this关键字获取动态创建的li标签的name属性

mrsJoe 2019-02-10 01:29:42
function showLabel() {
var labelList = document.getElementById("labelList");
var input = document.getElementById("labelInput");
$.ajax({
url:"/getLabels",
type:"post",
data:{"input":input.value},
datatype:"json",
success:function (data) {
labelList.innerHTML = "";
for(var i = 0;i<data.length;i++){
var newLi = document.createElement("li");
newLi.setAttribute("name",data[i].id);
newLi.setAttribute("onclick","labelSel(this)");
newLi.innerHTML = data[i].name;
labelList.appendChild(newLi);
}
}
})
}
function labelSel(li) {
var gotLabels = document.getElementById("gotLabels");
var newSpan = document.createElement("span");
var labelList = document.getElementById("labelList");
var input = document.getElementById("labelInput");
newSpan.setAttribute("name",li.name);
newSpan.innerHTML = li.innerHTML;
gotLabels.appendChild(newSpan);
// labelList.innerHTML = "";
// input.value = "";
}

                <div>
<div id="gotLabels"></div>
<input type="text" id="labelInput" oninput="showLabel()" placeholder="专业">
<ul id="labelList">
</ul>
</div>

求助:上面是关键代码,本人动态获取数据库内容,并动态创建了li标签,然后还给li标签添加labelSel(this)方法,希望能在点击该li标签时获取该li标签的name属性,但是失败了,获取的结果是undefine(value也一样),不是很明白?但是获取id、innerHTML等都成功了。
...全文
184 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
b10868 2019-02-10
  • 打赏
  • 举报
回复
第14行代码和第15行代码互换下位置。第15行代码改为newLi.addEventListener('click',labelSel(newLi));
b10868 2019-02-10
  • 打赏
  • 举报
回复
第14行代码和第15行代码互换下位置。第15行代码改为newLi.addEventListener('click',fun(newLi));
天际的海浪 2019-02-10
  • 打赏
  • 举报
回复
用li.getAttribute("name")获取

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧