JavaScript。循环通过div的子集
我有这段HTML(实际上要大得多),但我用它作为示例来演示我的问题。所以我要做的是循环遍历所有的'div.col',并且对于其中设置了'data text'的每个div,我要将该'data text'推送到一个数组中 我该怎么做JavaScript。循环通过div的子集,javascript,jquery,Javascript,Jquery,我有这段HTML(实际上要大得多),但我用它作为示例来演示我的问题。所以我要做的是循环遍历所有的'div.col',并且对于其中设置了'data text'的每个div,我要将该'data text'推送到一个数组中 我该怎么做 <div class="holder"> <div class="col"> <div data-text=""></div>
<div class="holder">
<div class="col">
<div data-text=""></div>
<div data-text="lorem"></div>
<div data-text=""></div>
</div>
<div class="col">
<div data-text="hey"></div>
<div data-text=""></div>
<div data-text="hello"></div>
</div>
<div class="col">
<div data-text=""></div>
<div data-text="lorem"></div>
<div data-text=""></div>
</div>
</div>
试试这个片段:
var项目=[];
$('div.col div[data text]')。每个(函数(){
var text=$(this).data(“text”);
如果(text&&text.length>0){
项目。推送(文本);
}
});
控制台日志(项目)代码>
试试这个片段:
var项目=[];
$('div.col div[data text]')。每个(函数(){
var text=$(this).data(“text”);
如果(text&&text.length>0){
项目。推送(文本);
}
});
控制台日志(项目)代码>
您可以使用map()
和get()
返回数组
var arr=$('.holder div').map(函数(){
if($(this.data('text'))返回$(this.data('text');
}).get()
控制台日志(arr)
您可以使用map()
和get()
返回数组
var arr=$('.holder div').map(函数(){
if($(this.data('text'))返回$(this.data('text');
}).get()
控制台日志(arr)
纯js方法
var elems=document.querySelectorAll('.holder.col div[data text]:not([data text=”“]),
res=Array.from(elems.map)(v=>v.getAttribute('data-text');
控制台日志(res)代码>
纯js方法
var elems=document.querySelectorAll('.holder.col div[data text]:not([data text=”“]),
res=Array.from(elems.map)(v=>v.getAttribute('data-text');
控制台日志(res)代码>
要实现这一点,您可以仅选择具有值的数据文本
属性的元素,然后将结果元素映射到数组中。试试这个:
var arr=$('.holder.col div[data text]:not([data text=”“])).map(function(){
返回$(this.data('text');
}).get();
控制台日志(arr)
要实现这一点,您可以仅选择具有值的数据文本
属性的元素,然后将结果元素映射到数组中。试试这个:
var arr=$('.holder.col div[data text]:not([data text=”“])).map(function(){
返回$(this.data('text');
}).get();
控制台日志(arr)
我希望您不介意我在解决方案中使用此非
选择器。我喜欢。我希望您不介意我在解决方案中使用此not
选择器。我喜欢。