gpt4 book ai didi

javascript - 除了第一次,jQuery 对象永远不会改变

转载 作者:搜寻专家 更新时间:2023-11-01 04:33:42 25 4
gpt4 key购买 nike

我在尝试修改对象时遇到了问题。该对象具有一定数量的键,格式为 key_yyyy-mm-dd。当某些输入字段失去焦点时,我会触发一个函数来修改对象。这个函数如下:

function updateHotelBooking()
{
$(".no_hotel").each(function(i) {
var day = $(this).attr('name').match(/\[(.*?)\]/)[1];
hotelBooking["key_" + day] = parseInt($(this).val());
});
}

.no_hotel 是触发函数的文本框,它们还提供了一个我想放入我的对象中的值。

现在,假设我将 3 放入我的第一个文本框中,console.log 将返回以下对象:

Object
key_2011-08-21: 3
key_2011-08-22: 0
key_2011-08-23: 0
key_2011-08-24: 0
key_2011-08-25: 0

但是,下次我在文本框(或应该触发该函数的另一个文本框)中放入内容时,它确实会触发,但返回的对象保持不变。因此,它不会将第一个数字更改为 5,而是再次返回 3。

我不知道为什么。我的代码看起来非常简单,day$(this).val()console.log 返回正确的值。只是我的对象没有得到更新。

有人知道吗?非常感谢!

编辑:

hotelBooking$(document).ready() 之后立即初始化:

var hotelBooking = {};

调用updateHotelBooking的方法如下:

$(".roomrequest").blur(function()
{
updateHotelBooking();
});

EDIT2:JSFiddle:http://jsfiddle.net/pBYeD/2/

最佳答案

它与控制台有关,而不是您的代码,如果您将日志记录代码更改为此,您将看到您拥有正确的值:

    function updateHotelBooking()
{
$(".no_hotel").each(function(i) {
var day = $(this).attr('name').match(/\[(.*?)\]/)[1];
hotelBooking["key_" + day] = parseInt($(this).val());
**logObject(hotelBooking);**
});
}


function logObject(hotelBooking){
for(var i in hotelBooking){
console.log(i+": "+hotelBooking[i]);
}
console.log("------");
}

关于javascript - 除了第一次,jQuery 对象永远不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231233/

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