Javascript: передача текста из элемента li в функцию по клику - PullRequest
0 голосов
/ 23 мая 2018

Я делаю приложение для чата в js / java.В нем есть список онлайн-пользователей, и я хотел, чтобы имена пользователей были кликабельными, чтобы, если вы нажмете на них, вы могли отправить этому человеку личное сообщение.Все работает, и я проверил код ниже, чтобы убедиться, что нажатие на имя пользователя вызывает функцию (кнопка ()).

Что мне нужно сделать: в функции updateChat (), идентификатор строки («список пользователей»), он должен иметь возможность передавать текст из элемента списка, по которому щелкнули, функциональной кнопке ().Мне нужно установить это имя пользователя в качестве переменной, чтобы в следующий раз, когда этот пользователь отправлял сообщение, оно отправлялось этому одному пользователю и не передавалось.

Это не позволит мне передать «пользователя» в качестве аргумента иЯ не уверен, как передать этот текст.Спасибо

var privmsg = "";
function updateChat(msg) { // Update chat-panel and list of connected users
    let data = JSON.parse(msg.data);
    id("chat").insertAdjacentHTML("afterbegin", data.userMessage);
    id("userlist").innerHTML = data.userlist.map(user => "<li role=\"presentation\" 
        class=\"link\" value=\"thing\" onclick=\"button(user)\"><span>" + user + "</span>
        </li>").join("");
}

function button(newuser){
    String(newuser);
    privmsg = newuser;
}

1 Ответ

0 голосов
/ 23 мая 2018

Вам просто нужно сопоставить аргумент user как string с вызываемой функцией, например

button('" + user + "')

Вот пример фрагмента

var users = ["A", "B", "C"];



document.getElementById("userlist").innerHTML = users.map(function (user) {
        return "<li role=\"presentation\" \n        class=\"link\" value=\"thing\" onclick=\"button('" + user + "')\"><span>\" + " + user + " + \"</span</li>";
});       
        
        
function button(newuser){
    alert(newuser)
    privmsg = newuser;
}
<ul id="userlist"></ul>
...