提问者:小点点

根据JQuery中相应的按钮ID对标题进行着色


我有有限数量的按钮和标题,

html:

<button id = "1">1</button>
<button id = "2">2</button>

<heading id="1">heading1  <button>click</button>  </heading>
<heading id="2">heading2  <button>click</button>  </heading>

我希望jquery代码

  1. 如果单击具有id=“1”的按钮,则具有该id的按钮的背景色应变为黄色
  2. 如果单击位于id=“1”标题标记内的按钮,则上面具有该id=“1”的按钮应将其背景颜色更改为红色。

我只是以两个按钮和两个标题为例,代码应该可以处理任意有限数量的按钮和标题。


共2个答案

匿名用户

正如注释中所述,id应该是唯一的,因此您可以改用类。 请尝试以下操作:

null

$('button').click(function(){
     var parentTag = $(this).parent().prop("tagName")
     if(parentTag != "HEADING"){ //outer button
          $(`heading.${$(this).attr('class')}`).css('background-color','yellow');
     }else{
          $(`button.${$(this).parent().attr('class')}`).css('color','red');
     }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="1">1</button>
<button class="2">2</button>

<heading class="1">heading1  <button>click</button>  </heading>
<heading class="2">heading2  <button>click</button>  </heading>

匿名用户

首先,你必须使用唯一的ID,或者使用类来应用于多个元素。 我会帮你修密码的。

<button class="1">1</button>

<heading class="1">heading1  <button>click</button>  </heading>

若要更改颜色,请使用下面的代码。

$(document).ready(function(){
    $("button.1").click(function(){ /* when buttons with class 1 clicked */
    $("button.1").css('background-color', 'yellow'); /* change color to yellow */
  });
  $(".1 button").click(function(){ /* when buttons inside elements with the class 1 */ 
    $(".1 button").css('background-color', 'red'); /* change color to red */
  });
});

堆栈片段-

null

$(document).ready(function(){
    $("button.1").click(function(){
      $("button.1").css('background-color', 'yellow');
  });
  $(".1 button").click(function(){
    $(".1 button").css('background-color', 'red');
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="1">1</button>

<heading class="1">heading1  <button>click</button>  </heading>