我有以下jquery函数,似乎.each函数从不遍历我的对象(它直接到" $(" #AppConnect")。val(appConnectString); "没有迭代的行。)
以下是代码:
$("input").focusin(function () {
if (!$(this).hasClass("appConnectData")) {
var key, value, appConnectString = "";
$(".appConnectData").each(function (index, element) {
if ($(element).hasClass("key")) {
key = $(element).val();
} else {
value = $(element).val();
}
if (!key && !value) {
appConnectString += key + "." + value + ";";
}
});
$("#AppConnect").val(appConnectString);
}
//alert($("#AppConnect").val());
});
到目前为止,我一直在找到问题但没有成功:
也许是因为我的.each是一个焦点函数,或者我做了别的错误,但我似乎无法找到它。
我事先感谢你们所提供的帮助:)
答案 0 :(得分:0)
我认为问题是if
条件,如果您想确认key && value
&成功,请检查key
value
有一个值。
if (key && value) {
appConnectString += key + "." + value + ";";
}
演示:Fiddle
答案 1 :(得分:0)
在每种情况下,如果存在key
,则value
将不存在,反之亦然。所以正确的逻辑运算符是or
。即使这还不够!
您可以将if
分开来测试密钥和值的存在:
$("input").focusin(function () {
if (!$(this).hasClass("appConnectData")) {
var key, value, appConnectString = "";
$(".appConnectData").each(function (index, element) {
if ($(element).hasClass("key")) {
key = $(element).val();
} else {
value = $(element).val();
}
if (key) {
appConnectString += key".";
}
if(value){
appConnectString +=value;
}
if(key||value){
appConnectString +=";";
}
});
$("#AppConnect").val(appConnectString);
}
//alert($("#AppConnect").val());
});