при нажатии на класс добавить элемент

#javascript #html

#javascript #HTML

Вопрос:

я исправил старый вопрос, чтобы помочь, это мой второй вопрос

Есть еще одна вещь, которую мне нужно знать. Как я могу выбрать дочернего элемента «user chat_user»?

         var anchors = document.getElementsByClassName("user chat_user");
for(var i = 0; i < anchors.length; i  ) {
    var anchor = anchors[i];
    anchor.onclick = function() { setTimeout(function() {
        var ok = document.getElementsByClassName("user-dropdown")[0];
        var za = document.createElement("li");
        za.className = "user-dropdown-entry";
        za.innerText = "Mention";
        ok.append(za);}, 10);
    }
}
 

Комментарии:

1. Это означает, что нет элемента с классом user-dropdown

2. но если я добавлю значение setTimeout в «ok», это ничего не скажет

3. Не публикуйте код в комментариях. отредактируйте свой вопрос. ИЛИ, может быть, создайте фрагмент кода

4. хорошо, теперь все в порядке, я думаю

5. В вашем HTML нет ни одного элемента с раскрывающимся списком class user.

Ответ №1:

Вы должны убедиться, что ваш элемент определен / существует.

Попробуйте это:

 let ok = document.querySelector(".user-dropdown");
// Ensure the class `.user-dropdown` exists
if (ok) {
  // Only loop through how many exist, no more
  Array.from(document.getElementsByClassName("user chat_user")).forEach(anchor => {
    anchor.onclick = () => {
      // Use querySelector to select only the first of child here
      let za = document.createElement("li");
      za.className = "user-dropdown-entry";
      za.innerText = "Mention";
      ok.append(za);
    }
  });
} 
 .user.chat_user {
  border: 1px solid black;
  display: inline-block;
} 
 <dive class="user-dropdown">user dropdown</div>
  <ul class="messages">
    <li class="chat_msg msg-user-message">
      <div class="colorbar user"></div>
      <span class="user chat_user">
    <span class="chat_user_prof">
    <img src="https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/e8/e852c40b62be21a16b9f6d69a584e742d7364abb.jpg"></span>
      <span class="xp_70">
    <i class="icon"></i>
    <span class="level_val">79</span>
      </span>
      <a class="chat_user_name">ChickenİX * 1</a>
      <span class="chat_user_ico">
    <i class="icon-gammdom-symbol"></i>
    <span class="chat_user_colen">:</span>
      </span>
      </span>
      <span class="chat_cont">İg diyon xd</span>
    </li>
  </ul> 

Комментарии:

1. я хочу сделать это: когда я нажимаю «user chat_user», он должен это сделать; пусть za = document.createElement(«li»); za.className = «user-dropdown-entry»; za.innerText = «Упоминание»; ok.append(za);

2. я исправил это ty. не могли бы вы помочь мне ответить на мой второй вопрос?

3. Чтобы увидеть дочерние элементы, просто console.log(anchor.children) внутри цикла и делайте с ним, что хотите

4. также как я могу выбрать щелкнутый класс ‘innerText

5. Просто сделайте el.innerText