javascript - 如何使用 JavaScript 向元素添加唯一 ID?

标签 javascript

我想为“chatSubmit”函数内的每个段落元素添加唯一的 id,如下面的代码所示。 DOM 是动态生成的,段落有一个 ID textDisplay,对于新添加的 DOM 元素,该 ID 必须不同。

这是 fiddle 中的演示:https://jsfiddle.net/phaneendra/89v4a7m3/

<div class="userlist">
    <ul>
        <li onclick="openChat(this)">user1</li>
                    <li onclick="openChat(this)">user2</li> 
                    <li onclick="openChat(this)">user3</li>
                    <li onclick="openChat(this)">user4</li>
                    <li onclick="openChat(this)">user5</li>
    </ul>
</div>

<div id="main"></div>


function chatSubmit(form){ 
var sendInput = form.input;
if(sendInput.value != ""){
var message = sendInput.value;
var username = document.getElementById("username").innerHTML;
document.getElementById("textDisplay").innerHTML += username + ": " +message + "<br/>";
sendInput.value = "";
}else{
return false;
}
}

function openChat(userName){
    var user = document.createElement("div");
    user.className = "chat-app";
    user.innerHTML = '<form name="form"><div class="chat-icons"><div  class="username"><span id="username">'+userName.innerHTML+'</span></div> <div class="settings"></div></div><div class="chat-window"><p  id="textDisplay"></p></div><div class="chat-inputs"><input type="text" value="" id="input" /><input type="button" value="send" onClick = "chatSubmit(this.form)"/></div></form>';
    document.getElementById("main").appendChild(user);
 }

最佳答案

我已经更新了您的代码。 请检查更新的代码:

JS:

<script type="text/javascript">
    function chatSubmit(form, userId) {

       var Pid = "textDisplay"+userId;
        var sendInput = form.input;
        if (sendInput.value != "") {
            var message = sendInput.value;
            var username = document.getElementsByClassName(Pid)[0].innerHTML;
            document.getElementById(Pid).innerHTML += username + ": " + message + "<br/>";
            sendInput.value = "";
        } else {
            return false;
        }
    }

    function openChat(userName, userId) {

          var Pid = "textDisplay"+userId;
        var user = document.createElement("div");
        user.className = "chat-app";
        user.innerHTML = '<form name="form"><div class="chat-icons"><div class="username"><span class='+Pid+'>' + userName
        + '</span></div><div class="settings"></div></div><div class="chat-window"><p id="'+Pid+'"></p></div><div class="chat-inputs"><input type="text" value="" id="input" /><input type="button" value="send" onClick = "chatSubmit(this.form,'+userId+
            ')"/></div></form>';
        document.getElementById("main").appendChild(user);
    }
    </script>

HTML:

<ul>
            <li onclick="openChat('user1',1)">user1</li>
            <li onclick="openChat('user2',2)">user2</li>
            <li onclick="openChat('user3',3)">user3</li>
            <li onclick="openChat('user4',4)">user4</li>
            <li onclick="openChat('user5',5)">user5</li>
        </ul>

您可以通过将用户名和 ID 存储在一个数组中并循环它来生成此 html。

请引用here

关于javascript - 如何使用 JavaScript 向元素添加唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916495/

相关文章:

javascript - 如何使用rest api的动态查询

javascript - 获取关联数组中当前函数的键

javascript - Internet Explorer 上的 SVG viewBox 和变换矩阵

javascript - 在段落内的 JSX 字符串中添加新行 - React

JavaScript 在索引处插入数组

javascript - 将 Material UI 函数转换为类

Javascript 如果未定义则不起作用

javascript - 3ds max > collada > Threejs 动画错误, "Scale out of bounds"

javascript - 从 OnClick 中调用带参数的 JS 函数

javascript - 正则表达式负向预测不包括整个 block