我正在制作一个jquery函数,但我遇到了一些变量的麻烦。我不能将#op1的值输入到输入中,而在#z1中它显示“i”而不是“Start”。计数器参数也不会加起来。它只显示“0”。在点击事件中它会加起来。< / p>
javascript代码:
$(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>
答案 0 :(得分:1)
您为参数而不是元素传递字符串。因此,当您索引该参数时,您将获得字符串中的第一个字符。
你需要使用字符串作为选择器来获取它们的相关元素,然后将它们的返回值传递给你的函数:
// 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
的原因。