Javascript 检查数据属性是否为空
我希望映射表中所有的Javascript 检查数据属性是否为空,javascript,jquery,custom-data-attribute,Javascript,Jquery,Custom Data Attribute,我希望映射表中所有的td单元格,并检查它们的数据属性。如果属性/his分配的值不是空的,我想console.logit 我现在得到了这个,但它似乎没有正常工作(它只是说所有的td都不是空的)。另外,我不知道为什么map函数中的this指向窗口对象,而不是确切的td。你知道我遗漏了什么吗 function checkTds() { var $tab = $('table td'); $.map($tab, function(){ console.log($(this
td
单元格,并检查它们的数据属性。如果属性/his分配的值不是空的,我想console.log
it
我现在得到了这个,但它似乎没有正常工作(它只是说所有的td
都不是空的)。另外,我不知道为什么map函数中的this
指向窗口
对象,而不是确切的td
。你知道我遗漏了什么吗
function checkTds() {
var $tab = $('table td');
$.map($tab, function(){
console.log($(this));
if ($tab.attr("custom-data-attribute") !== "") {
console.log($(this));
}
});
}
checkTds();
您正在使用map
,它将自己的变量分配给迭代列表:
从
回拨
类型:函数(objectelementofarray,Integer indexInArray)=>Object
处理每个项目的函数。函数的第一个参数是数组项,第二个参数是数组中的索引,函数可以返回任何值。返回的数组将展平为结果数组。在函数中,这是指全局(窗口)对象
使用前缀data
创建自定义属性也是标准的:data-«yourname»
函数检查TDS(){
var$tab=$('table td');
$.map($选项卡,函数(元素){
//看看这里的元素var
//还要检查属性是否存在!
if($(元素).attr(“自定义数据属性”)&&($(元素).attr(“自定义数据属性”)!=“”){
log($(元素).attr(“自定义数据属性”);
}
});
}
checkTds()代码>
您应该使用$tab.map()
,而不是$.map($tab)
这两种方法都有效。由于节点列表可以在jQuery中迭代,因此您也可以使用$tab.map()
。您可以,但它们不同.map()
专门用于处理jquery集合我明白了……好了,现在当我使用元素变量时,它确实会打印所有的td,但我希望它只打印那些分配了一些值的td(并显示该值)。这就是我的td的样子:看看我添加的堆栈片段。也可以使用.length
而不是!==“”
。