2015-12-12 1 views
2

У меня есть небольшой заказ, здесь я получаю значения в таблице динамически. Несколько раз несколько полей возвращают некоторые значения null/blank. Если он дает нулевые значения, отображающие сообщение об ошибке, например "worderId[i].childNodes[0] is undefined" Пожалуйста, помогите мне, как назначить некоторые значения по умолчанию для нулевых значений.Получение ошибки для передачи значений по умолчанию для нулевых полей с помощью javascript?

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

Я не понимаю этот кусок кода

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 [я] .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 [я] .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>"; 

Надежда, что помогает!

+0

Спасибо за пояснения, я исправил свою проблему. – Rajasekhar

+0

@Rajasekhar Рад, что это помогло! – hkasera

Смежные вопросы