Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带按钮的Jquery removeclass_Jquery_Html - Fatal编程技术网

带按钮的Jquery removeclass

带按钮的Jquery removeclass,jquery,html,Jquery,Html,如何针对具有特定类的所有按钮的子集?我试图做到的是,一次只能选择一个带有P或S的按钮。如果用户单击一个特定的“P”按钮,它会从其他每一个“P”按钮中删除highlight类,与“S”相同 HTML 这是美国 您可以使用类选择器筛选:按钮选择,例如:button.p如果您希望它更具可读性,可以使用jquery长格式,使用$(':button')。筛选('.p') 看起来我的更改没有保存。不知道怎么回事!但是我在顶部块的过滤器中添加了.P,在那里您删除了类,并在底部添加了相同的一行,但是.S。

如何针对具有特定类的所有按钮的子集?我试图做到的是,一次只能选择一个带有P或S的按钮。如果用户单击一个特定的“P”按钮,它会从其他每一个“P”按钮中删除highlight类,与“S”相同

HTML

这是美国

您可以使用类选择器筛选:按钮选择,例如
:button.p
如果您希望它更具可读性,可以使用jquery长格式,使用
$(':button')。筛选('.p')


看起来我的更改没有保存。不知道怎么回事!但是我在顶部块的过滤器中添加了
.P
,在那里您
删除了类
,并在底部添加了相同的一行,但是
.S
。我还向所有按钮添加了类
P
S
。最后,我将您的
addClass
调用移动到页面底部,这样您的
removeClass
就不会意外地删除新单击的按钮

您的意思是您希望能够突出显示具有“p”类的用户中的一个按钮。“S”类按钮也是一样吗

例如,要选择具有“p”类的所有按钮,请将代码从
$(':button')
稍微更改为
$(':button.p')
,这意味着获取具有“p”类的所有按钮


首先,您的HTML中有一个小错误:您只在前几个按钮中设置了“p”或“S”类。下一个类将“”作为类。必须设置该类才能使以下代码正常工作

修正了这个问题,您应该首先取消设置所有“突出显示”类,然后设置您感兴趣的类:


这很好,但我希望它从每个“P”或“S”按钮中删除突出显示类,但您当前单击的按钮除外。@Edward-最后一个linr将该类再次添加到单击的按钮中。-$(this).addClass('highlight');-这里有一个扩展方法可以删除除所选类之外的类-$(this).addClass('highlight');-同时,你应该在检查typeid之后再写一次,这是不必要的冗余。@MuhammadHani:我知道,但是这样的话,这个例子更容易阅读和理解。
$(':button').on('click', function() {

      var typeid = $(this).attr('value');
      $(this).addClass('highlight');

      if(typeid == 'P') {
        $('.primary').val(0);

        $(':button').removeClass('highlight');

        var opts = $(this).parent().find('input').eq(0).val(1);


      }

      if(typeid == 'S') {

      $('.static').val(0);
      var optp = $(this).parent().find('input').eq(1).val(1);

      }

    });
  <div id= "US">
    This is the US
  <div id="Monday">

<input name='' value='1' class="primary" type=''>
<input name='' value='0' class="static" type=''>


<input type='button' value='P' class='P'>
<input type='button' value='S' class='S'>

  </div>

    <div id="Tuesday">

<input name='' value='1' class="primary" type=''>
<input name='' value='0' class="static" type=''>

<input type='button' value='P' class=''>
<input type='button' value='S' class=''>


  </div>

      <div id="Wednesday">

<input name='' value='1' class="primary" type=''>
<input name='' value='0' class="static" type=''>


<input type='button' value='P' class=''>
<input type='button' value='S' class=''>

  </div>
  </div>
  if(typeid == 'P') {
    $('.primary').val(0);   
    $(':button.P').removeClass('highlight');  
    var opts = $(this).parent().find('input').eq(0).val(1);

  }

if(typeid == 'S') { 
  $('.static').val(0);      
  $(':button.S').removeClass('highlight');     
  var optp = $(this).parent().find('input').eq(1).val(1);  
  }
    $(this).addClass('highlight');
$(':button').on('click', function() {

  var typeid = $(this).attr('value');

  if(typeid == 'P') {
    $('.primary').val(0);

    $(':button.P').removeClass('highlight');
    $(this).addClass('highlight');

    var opts = $(this).parent().find('input').eq(0).val(1);
  }

  if(typeid == 'S') {
    $('.static').val(0);

    $(':button.S').removeClass('highlight');
    $(this).addClass('highlight');

    var optp = $(this).parent().find('input').eq(1).val(1);
  }
});