首页 > 解决方案 > 如何用jquery html连接if条件?

问题描述

我正在使用 jQuery 代码在前端制作 html,但如果条件意外令牌 if 出现错误,我会收到错误消息。请帮我解决这个问题,我猜想将 jQuery 与 HTML 连接起来有问题。下面是我的代码。

innerapptemp.blade.php


    for (iS = 0; iS < response.data.stocks.length; ++iS) {
                            stocks += '<tr class="table-row"><td><select> <option> Select </option> <option value="1"' +if(response.data.stocks[iS].color_tag==1) +' selected> Interested </option> <option value="1"' +if(response.data.stocks[iS].color_tag==2) + ' selected> Not Interested </option> </select></td><td>' + response.data.stocks[iS].scan_name + '</td><td>' + response.data.stocks[iS].name + '</td><td>' + response.data.details[response.data.stocks[iS].name].close_price + '</td><td>' + response.data.details[response.data.stocks[iS].name].open_price + '</td><td>' + response.data.details[response.data.stocks[iS].name].last_price + '</td><td>' + response.data.details[response.data.stocks[iS].name].volume + '</td><td>' + response.data.details[response.data.stocks[iS].name].change_from_open + '</td><td>' + response.data.details[response.data.stocks[iS].name].pivot_point + '</td><td>' + response.data.details[response.data.stocks[iS].name].r3 + '</td><td>' + response.data.details[response.data.stocks[iS].name].changefromr3 + '</td><td><button class="btn btn-primary place-btn" attr-order_type="MARKET" attr-product="NRML" attr-symble="{{ $stock->name }}" attr-id="{{ $stock->name }}" data-toggle="modal" data-target="#place-order">Place Order</button></td><td><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#depthMain">click</button></td></tr>';
                        }

标签: phphtmljquery

解决方案


首先,让我们格式化您的代码,以便您可以实际看到它:

for (iS = 0; iS < response.data.stocks.length; ++iS) {
    stocks += '<tr class="table-row"><td><select> <option> Select </option> <option value="1"' +
    if(response.data.stocks[iS].color_tag==1) +
    ' selected> Interested </option> <option value="1"' +
    if(response.data.stocks[iS].color_tag==2) +
     ' selected> Not Interested </option> </select></td><td>' +
     response.data.stocks[iS].scan_name +
     '</td><td>' +
     response.data.stocks[iS].name +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].close_price +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].open_price +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].last_price +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].volume +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].change_from_open +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].pivot_point +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].r3 +
     '</td><td>' +
     response.data.details[response.data.stocks[iS].name].changefromr3 +
     '</td><td><button class="btn btn-primary place-btn" attr-order_type="MARKET" attr-product="NRML" attr-symble="{{ $stock->name }}" attr-id="{{ $stock->name }}" data-toggle="modal" data-target="#place-order">Place Order</button></td><td><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#depthMain">click</button></td></tr>';
}

您不能有一个长字符串并连接 (+) if 语句。您需要先解决这些问题并将它们作为变量包含在字符串中,或​​者将其分解并将它们放在您尝试创建的字符串之间。

例如,这部分字符串:

 <option value="1"' 
        +if(response.data.stocks[iS].color_tag==1) 
        +' selected> Interested </option> <option value="1"' 
        +if(response.data.stocks[iS].color_tag==2) 
        + ' selected> Not Interested </option> 

需要像这样重构:

// this part before you start the big long string
opt1selected = opt2selected =''; 
if(response.data.stocks[iS].color_tag==1) opt1selected=' selected="selected"';
if(response.data.stocks[iS].color_tag==2) opt2selected=' selected="selected"';

   // then in the string
   // .... 
   '<option value="1"' +opt1selected+' </option>' +
    '<option value="2"' +opt2selected+' </option>' +
    

      

推荐阅读