我目前有一个小页面,上面有9个按钮。四个人被分配一个班级,五个人被分配另一个班级。在页面的整个生命周期中,5的值可以更改为两个值中的一个。我想做一个if in jQuery语句来检查属于同一类的五个按钮的值。当它们的值都等于一项时,就会触发一个函数。
我让函数工作了,只是在创建条件语句时遇到了问题。
编辑:我不能给出所有的代码。它会占据整个页面。下面是我想要监控的按钮:
<input id="link1" type="button" value="[+] Expand" onclick="toggleVisibility('table1', 'link1')" class="expander" />
<input id="link2" type="button" value="[+] Expand" onclick="toggleVisibility('table2', 'link2')" class="expander" />
<input id="link3" type="button" value="[+] Expand" onclick="toggleVisibility('table3', 'link3')" class="expander" />
<input id="link4" type="button" value="[+] Expand" onclick="toggleVisibility('table4', 'link4')" class="expander" />
<input id="link5" type="button" value="[+] Expand" onclick="toggleVisibility('table5', 'link5')" class="expander" />下面是我想要在这五个按钮的所有值都为"+ jQuery“时触发的扩展函数。
function () { $("#bottom-wrap").addClass("absolute-bottom") }发布于 2012-08-29 02:34:57
如果只有5个按钮具有相同的类,并且您希望检查所有5个按钮是否具有相同的值,则可以始终执行以下操作:
var elem = $(".expander");
elem.on('change', function() {
if ( elem.filter("[value='[+] Expand']").length == elem.length)
$("#bottom-wrap").addClass("absolute-bottom");
});发布于 2012-08-29 02:24:19
您应该在每次更新元素时检查元素的值。下面的函数会给你想要的东西:
function buttonClassMatches(){
var firstClass;
var sameClass = true;
$('input[type="button"]').each(function(){
if(firstClass == null){firstClass = $(this).attr("class");}
if(firstClass != $(this).attr("class")){sameClass = false;}
});
if(sameClass){doYourFunction();}
}发布于 2012-08-29 02:42:15
这是一个尝试--它可能需要稍作修改。如果你提供了一个jsFiddle或者别的什么,我可以确保它能正常工作。
$(".fiveClass").change(function(){ //Add an event handler to jQuery's change event
var allSame = true;
var first;
$(".fiveClass").each(function(){ //Check each element with the class "fiveClass"
if( typeof first == "undefined" ){
first = $(this).val();//could also try .text() depending on type of DOM node
}
allSame = allSame && (first === $(this).text());
}
if( allSame ){
//do something.
}
}https://stackoverflow.com/questions/12165091
复制相似问题