Javascript 使用ID';从HREF到目标元素获得的

Javascript 使用ID';从HREF到目标元素获得的,javascript,jquery,arrays,Javascript,Jquery,Arrays,我很难理解为什么下面的代码不能按预期工作。我试图通过将锚定标记href保存到数组中,从内容表中获取页面上的ID数组。数组是按照我预期的方式构造的,但是当我尝试将其用作目标元素时,什么也没有发生。我怀疑这是因为数组被转换成了字符串(在console.log中也是如此),但我仍然不太明白为什么它不能工作。我是否必须将数组转换为对象,如果是,如何实现?我在任何地方都找不到任何适合我的东西 编辑:我必须这样做(最好至少是这样),因为内容表是要动态创建的(并非始终是相同的元素),并且内容表所指向的元素应该

我很难理解为什么下面的代码不能按预期工作。我试图通过将锚定标记
href
保存到数组中,从内容表中获取页面上的ID数组。数组是按照我预期的方式构造的,但是当我尝试将其用作目标元素时,什么也没有发生。我怀疑这是因为数组被转换成了字符串(在console.log中也是如此),但我仍然不太明白为什么它不能工作。我是否必须将数组转换为对象,如果是,如何实现?我在任何地方都找不到任何适合我的东西

编辑:我必须这样做(最好至少是这样),因为内容表是要动态创建的(并非始终是相同的元素),并且内容表所指向的元素应该相应地设置样式

var元素=[];
$(“.bb”)。每个(函数(){
elements.push($(this.attr(“href”));
});
控制台日志(元素);
$(元素)。每个(函数(){
$(this.css(“背景”、“红色”);
});
//然而,这对单个elment有效
var el=$(“.cc”).attr(“href”);
$(el.css(“背景”、“绿色”)
正文{
填充底部:100px;
}
div{
高度:50px;
边缘底部:10px;
背景:#d3fcff;
}

但是,不使用数组并以单个元素为目标是可行的


您的阵列包含您要瞄准的HREF-因此它们必须在选择器中使用,如下所示-使用阵列中的
HREF
选择所有
a
-

var元素=[];
$(“.bb”)。每个(函数(){
elements.push($(this.attr(“href”));
});
控制台日志(元素);
elements.forEach(函数(元素){
$('a[href='+element+']').css(“背景”,“红色”);
});
//然而,这对单个elment有效
var el=$(“.cc”).attr(“href”);
$(el.css(“背景”、“绿色”)
正文{
填充底部:100px;
}
div{
高度:50px;
边缘底部:10px;
背景:#d3fcff;
}

但是,不使用数组并以单个元素为目标是可行的

var元素=[];
$(“.bb”)。每个(函数(){
elements.push($(this.attr(“href”));
});
控制台日志(元素);
$。每个(元素、函数(i、val){
$(val).css(“背景”、“红色”);
});
div{
高度:50px;
边缘底部:10px;
背景#fff9d3;
}

但是,不使用数组并以单个元素为目标是可行的


它可以工作!杰出的但是,我希望使用
.css()
而不是锚定标记来定位div。
elements.forEach()
中的以下内容适用于此:
$(element.css(“背景”、“红色”)。然而,你是否愿意解释一下为什么这与我自己的尝试相反很高兴它能工作-原因是我的版本迭代声明的数组(“元素”),而你的版本则试图迭代未声明的元素“$(元素)“。此外,在选择器中使用href可以使具有指定href的a成为目标。我仍然认为有一种更好的方法。还有-我更希望有一个静态定义的类“(.red)和一个指定的样式规则(.red{background:red}),然后将该类应用于a…我总是喜欢将我的样式规则保留在CSS中,而不是动态添加到元素中。但这只是meYou的问题是没有jQuery方法来转换”选择器数组进入“jQuery元素包装器数组”。您需要将id列表转换为带有逗号分隔符的单个字符串:
$(elements.join(“;”)
。看见