gpt4 book ai didi

javascript - jQuery 选择全部而不是某些字段

转载 作者:行者123 更新时间:2023-11-28 04:08:10 25 4
gpt4 key购买 nike

如何存储上次搜索:

<div class="lastSearch" style="display:none">
<input type="hidden" data-field-no="193" data-value="asd">
<input type="hidden" data-item-type="1" data-item-no="12">
</div>

表单中的字段看起来如何:

<div class="divBody">
<label style="top:113.6px;left:32px;width:86.4px;height:12.8px;" data-field-no="190">ID</label>
<label style="top:67.2px;left:32px;width:86.4px;height:12.8px;" data-field-no="191">Ime</label>
<label style="top:20.8px;left:32px;width:86.4px;height:12.8px;" data-field-no="192">Tekst</label>
<input style="top:19.2px;left:123.2px;width:152px;height:16px;" data-field-no="193" id="input-0" type="text" data-param-type="0" value="">
<input style="top:65.6px;left:123.2px;width:152px;height:16px;" data-field-no="194" id="input-1" type="text" data-param-type="0" value="">
<input style="top:112px;left:123.2px;width:152px;height:16px;" data-field-no="195" id="input-2" type="number" data-param-type="1" value="">
</div>

此函数用于在动态搜索表单加载后填充输入并选择字段。

// FILL FIELDS WITH LAST SEARCH VALUES
$("#divTabBody" + tabNo + " .divUpper .lastSearch input[data-field-no][data-value]").each(function () {
var oldFieldNo = $(this).data('field-no');
var oldValue = $(this).data('value');

console.log(oldValue + ' ' + oldFieldNo);

// not working
$("#divSearchPopup .divBody input, #divSearchPopup .divBody select").each(function () {
if ($(this).data('field-no') == oldFieldNo) {
$(this).val(oldValue);
return true;
}
});

// not working eather
//$("#divSearchPopup .divBody input").find("[data-field-no='" + oldFieldNo + "']").val(oldValue);
//$("#divSearchPopup .divBody select").find("[data-field-no='" + oldFieldNo + "']").val(oldValue);

// also not working
//$("#divSearchPopup .divBody input[data-field-no='" + oldFieldNo + "']").val(oldValue);
//$("#divSearchPopup .divBody select[data-field-no='" + oldFieldNo + "']").val(oldValue);
});

变量 oldFieldNooldValue 已成功加载,并且第一个 each 循环工作正常。

执行此函数后得到的结果是表单中的所有输入和选择字段均填充有最后一个存在的 .lastSearch 输入 字段。同样,循环 .lastSearch input 的第一个 each 循环对每个元素仅触发一次,因此它工作正常,但我似乎无法找到仅选择的方法一个字段由 data-field-no 组成,并仅将其值设置为 oldValue

标记为不工作的两段代码都可以工作(例如:不会抛出 jQuery 或 javascript 异常),但没有得到我想要的结果。

最佳答案

"How last search is stored:"

原因:当内部/第二个.each函数调用外部/第一个.each函数完成执行时(3次)。因此,oldFieldNooldValue 存储的是最后一次执行的值。

现在,当第二个 .each 函数执行 3 次时,它总是会获取 oldFieldNooldValue 的最新/最后值。

您可以使用包装器(例如闭包)为每个项目传递oldFieldNooldValue。它会立即调用函数(function(){})(),因此,对于外部.each函数的迭代调用immediad。

尝试更改第二个 .each 函数:

    $("#divSearchPopup .divBody input, #divSearchPopup .divBody select").each((function(oldFieldNo, oldValue){

return function () {
if ($(this).data('field-no') == oldFieldNo) {
$(this).val(oldValue);
return true;
}
}
})(oldFieldNo, oldValue));

关于javascript - jQuery 选择全部而不是某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46521785/

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