使用纯JS点击即可从li元素中获取文本和id
Get text and id from an li element on click with pure JS
我已经被这个问题困扰了好几天,我无法解决它。
我用jQuery做了这件事,没有问题,但我需要纯JS。
我的列表就是这样生成的。
function get_friends(items){
if(items != undefined){
if (items.length != 0){
var html_friends_list = "";
for(var count = 0; count < items.length; count++){
if(items[count].subscription == "both"){
var display_name = Strophe.getNodeFromJid(items[count].jid);
html_friends_list = html_friends_list + "<li style='font-size:19px' id='open_chat-" + items[count].jid + "'>" + "<a href='chat-js/index.html'>" + display_name + "<span class='block-list-label' id='" + items[count].jid + "_unread_messages" + "'>0</span><span class='block-list-label' id='" + items[count].jid + "_change_status" + "'></span></a></li>";
}
}
document.getElementById("friends-list").innerHTML = html_friends_list;
如前所述,我想保存文本的值和单击的任何li元素的id。
问候
您尚未指定这是针对特定列表还是仅针对页面上的任何li
。下面将记录页面上任何li
的id和innerHTML组件。也许您可能需要针对您的特定用例更新querySelector
。
var list = document.querySelectorAll('li');
Array.prototype.slice.call(list).forEach(function(listItem){
listItem.addEventListener('click', function(e){
console.log(this.id);
console.log(this.innerHTML);
});
});
这里有一个JSFiddle,我认为它展示了你正在努力实现的目标。
结合詹姆斯的回答和工作实例。
function get_friends(items) {
if (items != undefined) {
if (items.length != 0) {
var html_friends_list = "<ul>";
for (var count = 0; count < items.length; count++) {
if (items[count].subscription == "both") {
html_friends_list = html_friends_list + "<li id='open_chat-" + items[count].jid + "'>"+ items[count].display_name +"</li>";
}
}
html_friends_list = html_friends_list + '</ul>'
document.getElementById("friends-list").innerHTML = html_friends_list;
}
}
}
注意:您应该在创建dom元素后触发prototype。
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 完全可链接的li元素
- tiltSlider播放/暂停视频元素(如果li有当前类)
- 使用li元素的html内容更改该元素的背景
- 需要在量角器中找到使用ng中继器的li元素的数量
- 根据输入值创建li元素
- 要更改变量的高度li元素
- 为li元素添加标题
- 在不使用sort()的情况下获取HTML LI元素的副本
- 自动完成搜索无法正常工作,请不要迭代$中的所有元素.每个ul-li都会及时显示响应
- 将内容从 JSON 数组附加到 li 元素
- 使用 JavaScript 获取多元素 Li
- 灯箱“下一个”功能仍然显示已隐藏的元素 (li) 显示:无;
- 如何在嵌套列表中获取父元素li的值
- jQuery在父元素li的子元素ul中都没有得到元素
- 如果父元素li有class,将class附加到子元素
- 切换多个元素(li),除了被单击的元素
- 如何在Asp.Net中更改html元素(li)类
- 通过调整元素(li)的大小's边缘
- jQuery从数组中设置元素li数据