gpt4 book ai didi

javascript - 函数变量在 jQuery 中不起作用?

转载 作者:行者123 更新时间:2023-12-03 03:27:09 26 4
gpt4 key购买 nike

我正在制作一个 jquery 函数,但我在处理某些变量时遇到了麻烦。我无法将 #op1 的值获取到输入,在 #z1 中它显示“i”而不是“Start”。计数器参数也不会累加。它只显示“0”。在单击事件中它会累加。

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>

最佳答案

您正在传递参数的字符串,而不是元素。因此,当您索引该参数时,您将获得字符串中的第一个字符。

您需要使用字符串作为选择器来获取其关联元素,然后将其返回值传递到您的函数中:

// 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 的原因。

关于javascript - 函数变量在 jQuery 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46269588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com