gpt4 book ai didi

jquery - 为什么 jQuery.data 不起作用?

转载 作者:行者123 更新时间:2023-12-01 06:00:00 25 4
gpt4 key购买 nike

这是我正在处理的一些 HTML 页面中的 Javascript 代码:

var widgetsList = $("[widgetId]");
ToLogger("Init: " + widgetsList.length + " widgets found.");
for (var i=0; i<widgetsList.length; i++)
{
var widget = widgetsList[i];
var jqID = "#" + widget.id;

var refreshInterval = $(jqID).attr("refreshInterval");
if (refreshInterval == undefined)
refreshInterval = "30";

$(jqID).data("refreshCounter", "0");
var x = $(jqID).data("refreshCounter");
ToLogger(" = widget[ " + widget.id + " ].refreshCounter(init1) = " + x);

var widgetObj = $(jqID);
jQuery.data(widgetObj, "refreshCounter", "0");
x = jQuery.data(widgetObj, "refreshCounter");
ToLogger(" = widget[ " + widget.id + " ].refreshCounter(init2) = " + x);
}

但在日志输出中我看到:

DashboardInit: 1 widgets found.
= widget[ Q.RecordCounters ].refreshInterval = 30
= widget[ Q.RecordCounters ].refreshCounter(init1) = undefined
= widget[ Q.RecordCounters ].refreshCounter(init2) = 0

为什么'$(jqID).data("refreshCounter")'返回'undefined'?一个月前,这段 JavaScript 代码运行得很好!现在可能有什么问题吗?我已经用 jQuery 1.7.2 和 1.8.1 尝试过 - 工作方式相同。难道是因为浏览器更新了? (火狐15.0)

下一个问题 - 即使 jQuery.data(...) 也无法在计时器函数中工作:

var timerLock = false;
function OnTimer()
{
if (timerLock) return ;
timerLock = true;
for (var i=0; i<widgetsList.length; i++)
{
var widget = widgetsList[i];
var jqID = "#" + widget.id;
var widgetObj = $(jqID);
var x = jQuery.data(widgetObj, "refreshCounter");
var counter = parseInt(x);
ToLogger(" = widget[ " + widget.id + " ].refreshCounter = " + x + " / " + counter);
}
}

但在日志输出中我看到:

= widget[ Q.RecordCounters ].refreshCounter = undefined / NaN

为什么“未定义”?!如果 .data("refreshCounter") 之前已成功分配,我认为它一定不是“未定义”。你看到了吗——这可能有什么问题吗?

最佳答案

我在评论中看到你有一个点“.”在对象 ID 中。您仍然可以使用以下语法选择该元素:令 id 为 'abc.456'选择器将为 $("[id='abc.456']")

希望我的回答对您有所帮助。

关于jquery - 为什么 jQuery.data 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263472/

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