Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从页面加载jquery上具有相同类名的多个div中获取特定属性值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 从页面加载jquery上具有相同类名的多个div中获取特定属性值

Javascript 从页面加载jquery上具有相同类名的多个div中获取特定属性值,javascript,jquery,html,Javascript,Jquery,Html,我有一个类似这样的HTML网页。 我想从类样例选项中隐藏背景,并在div中渲染选项标签 但我无法获得选项标签 $(文档).ready(函数(){ if($('div.swatch-option').hasClass('color')){ log($(this.attr('option-label')); } }); 试试: $('div.swatch-option.color').each(function() { console.log($(this).attr('option-lab

我有一个类似这样的HTML网页。 我想从类样例选项中隐藏背景,并在div中渲染选项标签

但我无法获得选项标签

$(文档).ready(函数(){
if($('div.swatch-option').hasClass('color')){
log($(this.attr('option-label'));
}
});

试试:

$('div.swatch-option.color').each(function() {
  console.log($(this).attr('option-label'));
});
使用上面的代码片段,您将获得所有具有类
.swatch选项
.color
-的div,然后使用
$(this)

对它们进行迭代并访问它们的属性
$(this)
在代码中没有上下文,您应该在div中循环,然后
this
将引用div:

$(文档).ready(函数(){
$('div.swatch-option.color')。每个(函数(){
log($(this.attr('option-label'));
})
});

您可以迭代所有
样例选项
具有
颜色
类的div,并选中
选项标签
属性

$(文档).ready(函数(){
$('div.swatch-option.color')。每个(函数(){
log($(this.attr('option-label'));
});
});

仅当您还需要其他条件时才使用此答案

我使用了
.each
函数来查找所有
div.swatch-option
,并且使用
if()
条件,我只考虑了具有类
.color
的div,如果不需要它,您可以删除它

$(文档).ready(函数(){
$('div.swatch-option')。每个(函数(){
if($(this).hasClass('color')){
//添加了此if()条件,考虑到其他div没有类'color'`
log($(this.attr('option-label'));
}否则{
//你想和其他没有颜色等级的部门合作吗
}
});
});

您可以将id属性应用于类

<div class="swatch-option color " id="color" tabindex="-1" option-type="1" option-id="50" option-label="Red" option-tooltip-thumb="" option-tooltip-value="Red" style="background: Red no-repeat center; background-size: initial;"></div>

按照我的要求,用批准的答案写下我的答案-

$( document ).ready(function() {
                            $('div.swatch-option.color').each(function() {
                                var labelFetch = $(this).attr('option-label');
                                $(this).css('background',"none");
                                $(this).append(labelFetch);
                            });
                        }); 

我会这样做:$('div.swatch-option').each(function(){if($(this.hasClass('color')){console.log($(this.attr('option-label'));});感谢大家这么快的帮助,批准的答案是第一个。你有没有理由得到所有
div.swatch-option
元素,然后检查他们是否有额外的类?使用
$('div.swatch-option.color')
不,这不会改变任何东西,这在性能和速度上都是一个进步。除非你打算对没有类
颜色的div做些什么,否则它毫无意义,速度慢,性能差。看看hsz(现在已被接受)的答案。
if
语句根本不是必需的,它让你用class
swatch选项来解析每一个div
,而不是仅仅针对正确的div。@Archer你说得对,兄弟,我只是先忘了这一点。我的错。ty用于纠正该错误。:)我的帖子在你之前就在这里:)@hsz,为什么你认为几秒钟或几分钟的延迟是重复的答案?我认为唯一的区别是当你发布你的时,其他人正在编辑他们的。所以没有复制答案的问题。@hsz,你和我的时间差是多少?两个不同的人有可能得到相同的答案吗?您是否在回答中创建了代码段,这需要时间吗?
$( document ).ready(function() {
                            $('div.swatch-option.color').each(function() {
                                var labelFetch = $(this).attr('option-label');
                                $(this).css('background',"none");
                                $(this).append(labelFetch);
                            });
                        });