0

我目前有一个小页面,上面有 9 个按钮。四个被分配到一个班级,五个被分配到另一个班级。在页面的整个生命周期中,5 的值可能会更改为两个值之一。我想在 jQuery 语句中创建一个 if 语句来检查属于同一类的五个按钮的值。当它们的值都等于一件事时,就会触发一个函数。

我有这个功能,我只是在创建条件语句时遇到了麻烦。

编辑:我真的不能给出所有的代码。它会占据整个页面。这是我要监视的按钮:

<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" />

这是当这五个按钮的所有值都是“[+] Expand”时我想要触发的 jQuery 函数

function () { $("#bottom-wrap").addClass("absolute-bottom") }
4

4 回答 4

1

如果只有五个按钮具有相同的类,并且您希望检查所有五个按钮是否具有相同的值,您总是可以这样做:

var elem = $(".expander"); 

elem.on('change', function() {
    if ( elem.filter("[value='[+] Expand']").length == elem.length)
        $("#bottom-wrap").addClass("absolute-bottom");
});​

小提琴

于 2012-08-28T18:34:56.833 回答
0

这是一个尝试——它可能需要稍作修改。如果您提供 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.
   }
}
于 2012-08-28T18:42:15.417 回答
0
var first,
    same = true;

$('.class').each(function(index, element) {
    if (index == 0) first = $(this).val();
    else {
        if (first != $(this).val()) {
            same = false;
            return false;
        }
    }
});

if (same) func();
于 2012-08-28T18:45:57.253 回答
0

每次其中一个更新时,您都应该检查元素的值。以下功能应该给你你想要的:

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-28T18:24:19.473 回答