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