Javascript 函数变量don';你不能在jQuery中工作吗?
我在做一个jquery函数,但是我在一些变量上遇到了麻烦。我无法在输入中获取#op1的值,在#z1中,它显示“I”而不是“Start”。此外,计数器参数不累加。它只显示“0”。在单击事件中,它被累加 javascript代码:Javascript 函数变量don';你不能在jQuery中工作吗?,javascript,jquery,Javascript,Jquery,我在做一个jquery函数,但是我在一些变量上遇到了麻烦。我无法在输入中获取#op1的值,在#z1中,它显示“I”而不是“Start”。此外,计数器参数不累加。它只显示“0”。在单击事件中,它被累加 javascript代码: $(function() { $(function () { var inpreco = []; var altpreco = []; var cpcounter9 = 0; $(".opcaopreco").click(function () { Super
$(function() {
$(function () {
var inpreco = [];
var altpreco = [];
var cpcounter9 = 0;
$(".opcaopreco").click(function () {
SuperF(this, "#preco", "inpreco", "altpreco", "cpvalor", "cpindex",
"cpactive", "cpcounter9", "preco");
});
function SuperF(element, input, inpArray, secArray, inpValue, secIndex,
inpActive,
counter, msqlip) {
var inpValue = $("#" + element.id).val();
var secIndex = $("#" + element.id).data(secIndex);
var inpActive = $("#" + element.id).data(inpActive);
if (inpArray[0] == "") {
counter++;
$("#" + element.id + "l").addClass("activa");
$(element).data(inpActive, "primary");
inpArray[0] = (inpValue);
input.val(inpArray[0]);
}
$("#z1").html(inpArray[0]);
$("#z2").html(counter);
$("#z3").html(cpcounter9);
};
});
});
html代码:
<input id="preco" type="text" name="preco" value=''><br><br>
<div id="op1l" class="input">
<input type="checkbox" id="op1" class="opcaopreco" value="Start" data-cpindex="1" data-cpactivo="">
<label for="op1"></label>
<span class="itext">Test</span>
</div>
<ul id="z">
<li id="z1">z1</li>
<li id="z2">z2</li>
<li id="z3">z3</li>
</ul>
测验
z1
z2
z3
您传递的是参数的字符串,而不是元素。因此,在索引该参数时,您将获得字符串中的第一个字符
您需要使用字符串作为选择器来获取其关联元素,然后将其返回值传递到函数中:
// use the strings to make a selection
var preco = $('#preco');
var inpreco = $('inpreco');
// etc.
// pass the results of each selection into your function
SuperF(this, preco, inpreco, ...)
您也可以在线执行此操作:
SuperF(this, $("#preco"), $("inpreco"), ...)
类似地,您也尝试将其他变量作为字符串传递,而不是像这样按名称传递:
SuperF(this, $('#preco'), inpreco, altpreco, cpvalor, cpindex, cpactive, cpcounter9, preco);
这就是你的函数无法访问大多数参数的原因,也是为什么你的计数器保持在
0
的原因,它比这更复杂。inpArray和secArray都是数组,我希望能够在函数中命名这些数组。此外,我如何解决计数器的问题?它总是返回0;@Adato我已经更新了答案再次解释一下,您需要将变量(而不是带有变量名称的字符串)传递到函数中。