使用javascript将默认值传递给空字段时出错?

时间:2015-12-12 05:04:17

标签: javascript

我有一点点要求,在这里我动态地获取值。有时几个字段会返回一些空值/空值。如果它给出显示错误消息的空值,如"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>&nbsp;</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;
}

1 个答案:

答案 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>";

希望有所帮助!