在onclick类中仅选择一个元素

尤尤

在下面的代码中,我有四个元素。单击特定元素后,我希望它更改颜色。现在,由于某种原因,整行元素都在改变颜色,而不是单个元素。这是我的代码:

<style>
.tag14 span {
    padding: 6px 10px;
    background: brown;
    border-radius: 20px;
    color: #091747;
    font-family: Roboto;
    font-size: 14px;
    margin: 0 4px 8px 0;
    font-weight: 500;
    display: inline-block;
    word-wrap: break-word;
    white-space: normal;
    cursor: pointer;
}


}

.tag14 span:focus{
   background:green;
}

</style>

<script>
function myfunction(elmt) 
{
    elmt.style.backgroundColor = "blue";
            
}
</script>


<div class="tag14" onclick="myfunction(this);">
    <span class="tag_span">
        Hello
    </span>
    
    <span class="tag_span">
        Hi
    </span>
    
    <span class="tag_span">
        Hello
    </span>
    
    <span class="tag_span">
        Hi
    </span>
    
    <span class="tag_span">
        Hello
    </span>
    
</div>

我怀疑这与类的命名方式以及onclick函数的参数有关。

罗科·C·布尔扬

const addActiveClass = (evt) => {
  evt.currentTarget.classList.add("is-active")
};

const getUserData = (evt) => {
  const user_id = evt.currentTarget.dataset.userId;
  console.log(`get data of user ID: ${user_id} from DB`);
};

const EL_tag_children = document.querySelectorAll(".tag span");
EL_tag_children.forEach(EL => {
  EL.addEventListener("click", addActiveClass)
  EL.addEventListener("click", getUserData)
});
.tag span {
  padding: 6px 10px;
  background: brown;
  border-radius: 20px;
  color: #091747;
  font-family: Roboto;
  font-size: 14px;
  margin: 0 4px 8px 0;
  font-weight: 500;
  display: inline-block;
  word-wrap: break-word;
  white-space: normal;
  cursor: pointer;
}

.tag span.is-active {
  background-color: blue;
}
<div class="tag">
  <span data-user-id="23">John</span>
  <span data-user-id="566">Amanda</span>
  <span data-user-id="101">Fredrick</span>
  <span data-user-id="42">Paulina</span>
  <span data-user-id="50">Jaqueline</span>
</div>

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

选择类中的任何最后一个元素

使用jQuery选择类中的一个元素

在我的选择元素中添加一个类

jQuery:仅选择一个类onclick-并非全部

如何选择R中的整个行而不是仅选择第一个元素?

仅当具有两个类并且共享相同的第一个类时才选择元素

如何遍历整个目录并从Python的多类文件中仅选择一个类?

仅当另一个元素在类中具有特定更改时如何显示一个元素

地图功能中的onClick,仅执行一个元素

jQuery中的“没有类”选择器。通过包含多个类的特定类名称选择一个元素

如何从地图功能中仅选择一个元素?

如何使用JavaScript仅选择一个li元素?

仅选择一个元素.wrapper或.test

xmllint仅选择第一个元素

XSLT仅每个选择第一个元素

Xpath仅选择元素的第一个实例

如何仅使用jQuery选择一个多个类

定位仅具有一个类值的元素

仅使用 css 切换 - 选择具有特定类的下一个元素

如何使用CSS选择所有元素中第一个出现的类

试图选择一个类中的单个元素。无法使用“ jQuery(this).next”

如何从一个特定的类中选择元素?

jQuery选择类的前一个元素

CSS语法以选择一个类下的多个元素

jQuery从类名称中选择一个元素

重复类时如何只选择一个元素?

在insertAdjacentHTML之后通过类名称选择一个元素

JQuery 选择一个包含多个类的元素

仅当添加了另一个类时,才将类添加到元素中