解决方案:即使按钮组名称不同,即使它们似乎单独操作,也不能使用相同的按钮组名称。
我在jQuery中有两个不同的函数,分别称为motivators()
和barriers()
。
无论何时执行其中一个功能,它都会在HTML中扫描给定的元素ID,获取值并将其存储在数组中。如果我运行第二个函数,那么它将对不同的数据列执行相同的操作,然后将数据存储在第二个函数中的另一个数组中。
函数radios("motivators or barriers")
处理应检查哪个表中的任何数据。
motivators()
的代码如下:
function motivators() {
var motLen = 0;
var motTotal = 0;
radios( "motivators" );
var motivatorsArr = [];
for ( var i = 1; i <= 17; i++ ) {
for ( var j = 1; j <= 4; j++ ) {
var button = $( "#rad" + "" + i + "" + j );
if ( button . is( ":checked" ) ) {
motivatorsArr . push( button . val() );
button . parents( "tr" ) . css( "opacity", "0" ) . delay( 750 ) . hide( 0 );
motLen++;
}
}
}
for ( i = 0; i < 16; i++ ) {
if ( motivatorsArr[ i ] !== undefined ) {
motTotal += parseInt( motivatorsArr[ i ] );
}
}
console.log("motivators: " + motivatorsArr,motLen,motTotal)
return {motLen: motLen, motTotal: motTotal};
}
barriers()
基本相同,但变量不同
function barriers() {
var barLen = 0;
var barTotal = 0;
radios( "barriers" );
var barriersArr = [];
for ( var i = 1; i <= 17; i++ ) {
for ( var j = 1; j <= 4; j++ ) {
var button = $( "#rad00" + "" + i + "" + j );
if ( button . is( ":checked" ) ) {
barriersArr . push( button . val() );
button . parents( "tr" ) . css( "opacity", "0" ) . delay( 750 ) . hide( 0 );
barLen++;
}
}
}
for ( i = 0; i < 16; i++ ) {
if ( barriersArr[ i ] !== undefined ) {
barTotal += parseInt( barriersArr[ i ] );
}
}
console.log("barriers: " + barriersArr,barLen,barTotal)
return {barLen: barLen, barTotal: barTotal};
}
我需要获取的值是我用1到17进行迭代的单选按钮,一组中的四个按钮是1到4。
基本上,每当我第一次运行两个函数时,第一个函数就会弹出数组的第一个元素,反之亦然。我无法找出给定功能的问题,这使我发疯。
更改一个单选按钮会导致
$( "#motivators input, #barriers input" ).on( "change", function () {
total();
} );
和total()
包含另外两个要运行的函数:
function total() {
var mot = motivators();
var bar = barriers();
}
尝试使用不同表中的前5个单选按钮组的结果。激励器的前5个按钮,障碍器的前5个按钮,请注意,每次执行功能时,激励器的长度如何减少。的确是另一个方向,如果我使用激励器的5个按钮,则障碍将变为零。 https://kepkuldes.com/images/8c1b260794808153375bfd494c385fa5.png
编辑:
这是单选按钮的代码 激励器单选按钮组11
<li>
<input type="radio" id="rad111" name="r11" value="0">
<label for="rad111"></label>
</li>
<li>
<input type="radio" id="rad112" name="r11" value="2">
<label for="rad112"></label>
<span class="contLabel"></span>
</li>
<li>
<input type="radio" id="rad113" name="r11" value="5">
<label for="rad113"></label>
<span class="contLabel"></span>
</li>
<li>
<input type="radio" id="rad114" name="r11" value="15">
<label for="rad114"></label>
<span class="contLabel"></span>
</li>
障碍物无线电台号码11
<li>
<input type="radio" id="rad00111" name="r11" value="0">
<label for="rad00111"></label>
</li>
<li>
<input type="radio" id="rad00112" name="r11" value="2">
<label for="rad00112"></label>
<span class="contLabel"></span>
</li>
<li>
<input type="radio" id="rad00113" name="r11" value="5">
<label for="rad00113"></label>
<span class="contLabel"></span>
</li>
<li>
<input type="radio" id="rad00114" name="r11" value="15">
<label for="rad00114"></label>
<span class="contLabel"></span>
</li>
为使组之间有所不同,表单选按钮组之一称为#rad
和组号,另一个称为#rad00
和组号。我请我的朋友和兄弟为我重新检查我是否有错字,但找不到任何错字。迭代非常简单(如果可能的话,至少对我来说,我接受一个更简单,更快速的解决方案)。
答案 0 :(得分:0)
您能否发布单选按钮的名称属性:#rad0011和#rad11。
您可能有8个具有相同属性名称的单选按钮组。 #rad00 **列中的4个按钮和#rad **列中的4个按钮