根据锚点更改InnerHTML

康纳·沃森(Conor Watson)

我是Web开发的新手,所以我希望有人可以为我解答。

我正在为类似于Facebook Messenger的“ Web Messenger”构建原型。我有一个侧边栏,当窗口加载时,我用锚标记的UL填充它,看起来像这样这是它的代码

var toAdd = document.createDocumentFragment();
var newUL = document.createElement('ul');
newUL.id = 'menu-content';
newUL.className = 'menu-content collapse out';

for(var i = 0; i < 5; i++){
  var newLI = document.createElement('li');
  var newA = document.createElement('a');
  newA.id = 'chat' + i;
  newA.setAttribute('href', "#");
  newA.innerHTML = "Chat" + (i + 1);
  newLI.appendChild(newA);
  newUL.appendChild(newLI);
}

toAdd.appendChild(newUL)
document.getElementById("menu-list").appendChild(toAdd);

在页面顶部,我还有一个Div,它将显示有关当前聊天的一些详细信息,但是暂时将仅显示聊天的名称,与锚标签上的名称相同。

现在基于另一个StackOverflow帖子,从锚标记调用JS函数的正确方法是

var c0 = document.getElementById("chat0");

//Set code to run when the link is clicked
// by assigning a function to "onclick"
c0.onclick = function(id) {
  //Change Title Name here
  //Do other stuff in the future
  return false;
}

但是,我一次可以在侧边栏上进行20多次聊天,因此这似乎是很多重复的代码。

有一个更好的方法吗?

扎卡里亚·阿查尔基(Zakaria Acharki)

为您的聊天提供一个通用类,而不是示例,chat然后使用将click事件附加到所有聊天中.getElementsByClassName()

因此,您可以在以下位置添加className newA.id

newA.id = 'chat' + i;
newA.className = 'chat';

然后附加点击事件:

var chats = document.getElementsByClassName('chat');

for (var i=0; i < chats.length; i++) {
    chats[i].addEventListener('click', chatClick, false);
}

function chatClick(){
    //chat is clicked
    //The 'this' object here refer to clicked element
}

您可以使用.addEventListener()代替onclick。

注意:您可以click在创建节点后直接附加事件:

for(var i = 0; i < 5; i++){
    var newLI = document.createElement('li');
    var newA = document.createElement('a');
    newA.id = 'chat' + i;
    newA.setAttribute('href', "#");
    newA.innerHTML = "Chat" + (i + 1);
    newA.addEventListener('click', chatClick, false); //Attach click event HERE
    newLI.appendChild(newA);
    newUL.appendChild(newLI);
  }

希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改按钮锚点SwiftUI

来自分类Dev

仅更改锚点而不更改位置

来自分类Dev

Django语言更改锚点与选项

来自分类Dev

使用锚点更改页面的内容

来自分类Dev

HTML锚点无法更改网址?

来自分类Dev

用div更改锚点属性

来自分类Dev

如何更改infobubble上的锚点

来自分类Dev

更改特定div中的锚点

来自分类Dev

使用锚点更改页面的内容

来自分类Dev

更改 jquery 版本会破坏锚点

来自分类Dev

如何在更改锚点时更改UILabel的框架

来自分类Dev

如何更改RectTransform的锚点以更改面板的宽度?

来自分类Dev

如何在更改锚点时更改UILabel的框架

来自分类Dev

更改时的Javascript“选择”转到锚点(锚点ID是选择值)

来自分类Dev

创建一个锚点,当您单击该锚点时将更改内容

来自分类Dev

如何更改锚点外观并保持它直到单击另一个锚点

来自分类Dev

使用javascript更改锚点的download属性的值

来自分类Dev

在mouseenter更改锚点内的HTML后mouseleave不触发

来自分类Dev

Sprite Kit更改锚点,但保持Physicalbody为中心

来自分类Dev

更改“滚动到锚点”偏移量-jQuery

来自分类Dev

材质UI Popper锚点El状态未更改

来自分类Dev

使用Codeigniter浏览页面时更改锚点类

来自分类Dev

更改包裹在锚点上的div的背景:悬停?

来自分类Dev

使用jQuery更改DOM中的锚点类

来自分类Dev

jQuery更改具有锚点的固定元素文本颜色

来自分类Dev

锚点导航和历史记录更改

来自分类Dev

iOS Autolayout更改锚点视点并旋转比例

来自分类Dev

Fullpage.js:如何更改锚点的颜色?

来自分类Dev

单击锚点元素时更改span元素的文本