我有一点点要求,在这里我动态地获取值。有时几个字段会返回一些空值/空值。如果它给出显示错误消息的空值,如"worderId[i].childNodes[0] is undefined"
请帮我如何为空值分配一些默认值。
if(worderId.length>0)
{
WOTableData= "<table cellpadding='0' cellspacing='1' border='0' width=100% class='display' id='WOData' ><thead><tr id='row1'><th> </th><th>worderId</th><th>wostatus</th></thead><tbody>";
var technologyImage="";
for(i=0;i<worderId.length;i++)
{
if (!worderId[i].childNodes || !worderId[i].childNodes.length || !worderId[i].childNodes[0].nodeValue) {
worderId[i].childNodes =="---";
}
WOTableData=WOTableData+"<tr title='"+worderId[i].childNodes[0].nodeValue+"</td><td>"+ worderId[i].childNodes[0].nodeValue+"</td><td>"+wostatus[i].childNodes[0].nodeValue+"</td></tr>";
}
WOTableData=WOTableData+"</tbody></table>";
document.getElementById("WODataDiv").innerHTML = WOTableData;
}
答案 0 :(得分:1)
我不理解你的这段代码
if (!worderId[i].childNodes || !worderId[i].childNodes.length || !worderId[i].childNodes[0].nodeValue) {
worderId[i].childNodes =="---";
}
WOTableData=WOTableData+"<tr title='"+worderId[i].childNodes[0].nodeValue+"</td><td>"+ worderId[i].childNodes[0].nodeValue+"</td><td>"+wostatus[i].childNodes[0].nodeValue+"</td></tr>";
您正在检查 worderId [i] .childNodes 是否不存在或是否存在并且假设它是一个数组,它至少有一个元素或该数组的第一个元素具有键名为 nodeValue 。如果满足以下任一条件,则指定
worderId[i].childNodes =="---";
所以现在worderId [i] .childNodes是一个字符串。然后你访问
WOTableData=WOTableData+"<tr title='"+worderId[i].childNodes[0].nodeValue+"</td><td>"+ worderId[i].childNodes[0].nodeValue+"</td><td>"+wostatus[i].childNodes[0].nodeValue+"</td></tr>";
worderId [i] .childNodes [0] .nodeValue 会在上述任何条件为真的情况下给您一个错误,因为在这种情况下,您已经指定了 worderId的值[i] .childNodes 为字符串,它不是数组。
所以,为了解决这个问题,你可以做到这一点
var assignValue = "";
if (!worderId[i].childNodes || !worderId[i].childNodes.length || !worderId[i].childNodes[0].nodeValue) {
assignValue = worderId[i].childNodes =="---";
}else{
assignValue = worderId[i].childNodes[0].nodeValue;
}
WOTableData=WOTableData+"<tr title='"+assignValue+"</td><td>"+ assignValue+"</td><td>"+assignValue+"</td></tr>";
希望有所帮助!