2015-06-24 3 views
2

Хорошо, поэтому у меня есть данные на стороне сервера, которые читают формат JSON с дочерними строками. Как я могу использовать If/Else If/Switch между ними?Добавление If/Else If Statment Inside Javascript HTML

<script type="text/javascript"> 

function format (d) { 
return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">', 

    '<tbody>'+ 
    '<tr>'+ 
     '<td class="second-td-box">'+ 
      '<p class="at-a-glance">Basic information:</p>'+ 
      '<p><span class="subhead">Name: </span>'+d.RES_GUEST_FIRSTNAME+'</p>'+ 
     '</td>'+ 
    '</tr>'+ 
    '</tbody>'+ 
'</table>'+ 
</script> 

Я попытался:

<script type="text/javascript"> 

function format (d) { 
return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">', 

    '<tbody>'+ 
    '<tr>'+ 
     '<td class="second-td-box">'+ '' 
      if (d.RES_GUEST_FIRSTNAME == "Alex") { 
      '<p class="at-a-glance">Basic information:</p>'+ 
      '<p><span class="subhead">Name: </span>'+d.RES_GUEST_FIRSTNAME+'</p>'+ 
      } 
     '</td>'+ 
    '</tr>'+ 
    '</tbody>'+ 
'</table>'+ 
</script> 

решена проблема, используя следующий код:

((d.BOOKING_SOURCE_ID == 73844)? 
     '<td class="second-td-box">'+ 
      '<p class="at-a-glance">Airbnb information:</p>'+ 
      '<p><span class="subhead">Confirmation: </span>'+d.CONFIRMATION+'</p>'+ 
      '<p><span class="subhead">Agency Income: </span>'+d.AIRBNB_AGENCY_INCOME+'</p>'+ 
      '<p><span class="subhead">Airbnb Income: </span>'+d.AIRBNB_INCOME+'</p>'+ 
      '<p><span class="subhead">Airbnb fees: </span>'+d.AIRBNB_FEES+'</p>'+ 
      '<p><span class="subhead">Airbnb per night: </span>'+d.AIRBNB_PER_NIGHT+'</p>'+ 
      '<span id="chart_div"></span>' 
      :"")+ 
     '</td>'+ 


    ((d.BOOKING_SOURCE_ID == 73858)? 
      '<td class="second-td-box">'+ 
      '<p class="at-a-glance">Booking.com information:</p>'+ 
      '<p><span class="subhead">Booking date: </span>'+d.BOOKING_DATE+'</p>'+ 
      '<p><span class="subhead">Booking currency: </span>'+d.BOOKING_CURRENCY+'</p>'+ 
      '<p><span class="subhead">Booking total: </span>'+d.BOOKING_TOTAL+'</p>'+ 
      '<p><span class="subhead">Booking comission: </span>'+d.BOOKING_COMISSION+'</p>'+ 
      '<p><span class="subhead">Booking policy: </span>'+d.BOOKING_POLICY+'</p>'+ 
      '<span id="chart_div"></span>' 
      :"")+ 
     '</td>'+ 
     '</tr>'+ 

Кажется, что я могу только "Печать" с помощью условного оператора.

ответ

1

Вы можете попробовать условный оператор (https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Conditional_Operator):

<script type="text/javascript"> 

function format (d) { 
return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">', 

    '<tbody>'+ 
    '<tr>'+ 
     '<td class="second-td-box">'+ '' + 
      ((d.RES_GUEST_FIRSTNAME == "Alex")? 
      '<p class="at-a-glance">Basic information:</p>'+ 
      '<p><span class="subhead">Name:</span>'+d.RES_GUEST_FIRSTNAME+'</p>' 
      :"")+ 
     '</td>'+ 
    '</tr>'+ 
    '</tbody>'+ 
'</table>'+ 
</script> 
+0

Решено с вашей помощью. Благодаря! –

+0

Если вы хотите сделать if/then/else, вы можете вложить условный оператор следующим образом: (a == '1'? 'Текст для 1' :(a == '2'? 'Текст для 2' : '')) – Gunni

0

Вы не можете использовать, если заявления в то время как конкатенация с. Вы можете использовать conditional operator что-то вроде этого:

'string' + d.RES_GUEST_FIRSTNAME ? 'add string' : '' + 'another string'; 
0

По существу вы возвращаете строку, так что вы можете построить это вверх по кусочкам. Я хотел бы подчеркнуть, что возвращение HTML как строки из JavaScript не рекомендуется для ввода HTML.

var returnString = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">'; 

returnString += '<tbody>'; 
returnString += '<tr>'; 

и так далее ..

Затем возвращает строку

return returnString; 

Так что, если вы хотите добавить в случае /, если еще

, то вы можете сделать что-то вроде

if (d.RES_GUEST_FIRSTNAME == "Alex") { 
    returnString += '<p class="at-a-glance">Basic information:</p>'; 
}