gpt4 book ai didi

javascript - 我可以在 jquery 中使用连接的 var+array_value 作为选择器吗,即 $ ("#var+array_value")

转载 作者:行者123 更新时间:2023-11-29 20:07:37 24 4
gpt4 key购买 nike

这可能非常明显,但老实说,我不是任何类型的开发人员。只是一个试图为我工作的公司的客户提供服务的人。

我在 JS 中定义了一个数组,我希望能够使用 for 循环对数组中的每个项目运行一段代码。

如果我单独运行代码(即不在循环中),我知道它有效。一旦尝试将其放入循环中,它就会失败。我希望这里有人可以告诉我我做错了什么,为什么错了,以及我怎样才能做对。 (我希望能够理解我在做什么/为什么做事,因为在我看来,了解这些事情总是更好)。

我得到的(有效的)JS/JQuery 代码是;

var a = document.getElementById('roomthumb_2236');
var d = $("#chosenrate_2236").offset();

if ($('#chosenrate_2236').length) {
a.style.visibility='visible';

$("#roomthumb_2236").css({
top: d.top -9 + "px",
left: d.left + 560 + "px",
})
};

这很好用(我知道有 JS 和 JQuery 的混搭,我可以稍后将其标准化)。

我已经尝试了很多“for”循环的变体,但它似乎并不想工作。这是我的“for”代码的最新版本;

var rooms_array = [2236, 2235]

var reposition = function (){
document.getElementById('hidden_stuff').style.display="none";

for (var i = 0; i < rooms_array.length; i++) {
var a = "roomthumb_"+rooms_array[i];
var b = "chosenrate_"+rooms_array[i];
var c = "chosenrate_"+rooms_array[i].offset()

if ($(b).length) {
$(a).css({
visibility:"visible",
top: c.top -9 + "px",
left: c.left + 560 + "px",
})
};
};
};

代码应该做什么(如果不清楚的话)是;

  • 设置数组(这是一个从数据库中动态创建的 id 列表)
  • 隐藏一个 div“hiddenstuff”(这很好用)
  • 然后为数组中的每个 id;
    • 创建一个名为 a 的变量“roomthumb_xxxx”(其中 xxxx 是数组中的 id)
    • 创建一个名为 b 的变量“chosenrate_xxxx”(其中 xxxx 是数组中的 ID)
    • 检查是否存在 ID 与变量 b 匹配的元素,如果存在,则编辑 ID 为变量 a 的元素的 css 属性

var c 应该得到 var b 的位置(如果我是对的),以允许我定位 ID 为 var a 的元素相对于它...

我不知道为什么代码在循环内失败。我似乎总是收到空错误,或者它认为 var b 未定义?

我的猜测是我不能使用一个字符串 (chosenrate_),向它添加一个数组字符串,然后使用该结果作为 ID。如果我使用 alert(a) 或 alert(b) 我确实得到了我需要的 ID,但是我不知道如何在 $("#ID") 中使用它...

我想我已经解释了一切。如果我遗漏了什么,我会尝试更好地解释。

最佳答案

你可以试试

var a = "#roomthumb_"+rooms_array[i]; // put # sign for id selector
var b = "#chosenrate_"+rooms_array[i];
var c = $("#chosenrate_"+rooms_array[i]).offset();

你也可以将 var c 写成:

var c = $(b).offset(); // where var b = "#chosenrate_"+rooms_array[i];

而不是你目前正在尝试的。

当您尝试指向 id 时,您需要在开始时使用 #

关于javascript - 我可以在 jquery 中使用连接的 var+array_value 作为选择器吗,即 $ ("#var+array_value"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11384776/

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