【问题标题】:Two buttons with same id and class, only one found to be working两个具有相同 id 和 class 的按钮,只有一个在工作
【发布时间】:2020-08-24 08:31:28
【问题描述】:

我正在使用 jira,并且有两个按钮具有相同的 id 和类。两者都是提交按钮,一个在顶部,一个在下面,当我使用下面的 jquery 时,只有第一个在单击时被捕获。意图是强制 cmets 测试字段。

只有最上面的一个在工作..

<script>
AJS.toInit(function () {
   AJS.$("#next").click(function(e){
    var comment=AJS.$("#jira #page #content .aui-page-panel .aui-page-panel-inner .aui-page-panel-content #bulkedit .form-body .aui .comment-input #comment").val();
    if(comment==""){
    AJS.$(".bulk-affects").append("<br/><div id='resErrror' style='color:red;margin-left:30px'>Comment is mandatory</div>");
       return false;
       }

   });

   });
</script> 

请帮助我捕捉下一个按钮以用于此脚本

【问题讨论】:

标签: javascript html jquery jquery-ui jira


【解决方案1】:

ID 应该是唯一的,因此您应该只在页面上使用一次特定的 ID。实际上,当您尝试使用 id 代码调用元素时,只会调用第一个元素。类可以重复使用

【讨论】:

  • 很遗憾这不是我们的页面,我们正在编写自定义 js。如果存在两个按钮用于相同的目的,具有相同的 id,是否可以让这个 js\jquery 影响两者?
  • 不,具有相同 ID 的元素,唯一的第一个元素将起作用,您尝试提供相同的 className 然后它会起作用。
  • $("[id=" + id + "]")
  • 它在使用类时工作。我之前尝试过,但还需要提供表单类。谢谢大家
【解决方案2】:

querySelectorAll 将查找所有 ID

const allButtons = document.querySelectorAll('#next');
for (let button of allButtons) {
  $(button).click((e) => {
    // Do your magic here
  })
}

【讨论】:

    【解决方案3】:

    记住:网页元素具有某些不可剥夺的权利;拥有唯一 ID 就是其中之一。通过确保网页上需要 ID 的每个元素都有唯一的 ID,防止 html 元素身份盗用。

    但是类可以重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      相关资源
      最近更新 更多