将javascript插入javascript html返回

将javascript插入javascript html返回,javascript,html,Javascript,Html,我有一个HTML表,它是使用javascriptreturn函数返回的。在我尝试在它中间添加一个额外的if子句之前,它工作得非常好 function format ( d ) { return '<div class="slider">'+ '<table id="expand">'+ '<tr>'+ '<td><button class="btn btn-success" val

我有一个HTML表,它是使用javascript
return
函数返回的。在我尝试在它中间添加一个额外的
if
子句之前,它工作得非常好

function format ( d ) {
    return '<div class="slider">'+     
    '<table id="expand">'+
        '<tr>'+
          '<td><button class="btn btn-success" value="Save" onclick="saveItem(this)" data-soli="'+d.soli+'" data-comments="'+d.comments+'" >Save</button></td>'+
        '</tr>'+
        '<tr>'+
            '<td class="dropHeader">Customer</td>'+
            '<td class="black">'+d.customer+'</td>'+
            '<td class="dropHeader">Value</td>'+

            if (d.country !== "usd") {
              '<td class="red">'+d.value+'</td>'+
            } else {
              '<td class="black">'+d.value+'</td>'+
            }                

            '<td class="dropHeader">Comments</td>'+
            '<td class="black"><input onblur="submitComments(this.value)" type="text"><br>'+d.comments+'</input></td>'+            
        '</tr>'+                                               
    '</table>'+    
   '</div>'; 
}
函数格式(d){
返回“”+
''+
''+
“保存”+
''+
''+
“客户”+
“+d.客户+”+
“价值”+
如果(d.国家!=“美元”){
“+d.价值+”+
}否则{
“+d.价值+”+
}                
“评论”+
“
”+d.comments+” ''+ ''+ ''; }
当我添加
if
子句时,代码失败。这是语法问题吗?我如何打破HTML,以便在返回中添加额外的javascript?我的目标是在线路货币为美元时添加td类
red
,但我不知道如何使用,例如:

。。。等
+
“价值”
+
(d.country!=“美元”?“”+d.value+“”+d.value+“”+d.value+“”)
+
“评论”
+
... 等
这样做

function format ( d ) {
var cssClass="";
if (d.country !== "usd") {
cssClass="red";
}
else{
cssClass="black";
}
    return '<div class="slider">'+     
    '<table id="expand">'+
        '<tr>'+
          '<td><button class="btn btn-success" value="Save" onclick="saveItem(this)" data-soli="'+d.soli+'" data-comments="'+d.comments+'" >Save</button></td>'+
        '</tr>'+
        '<tr>'+
            '<td class="dropHeader">Customer</td>'+
            '<td class="black">'+d.customer+'</td>'+
            '<td class="dropHeader">Value</td>'+
            '<td class="'+cssClass+'">'+d.value+'</td>'+           
            '<td class="dropHeader">Comments</td>'+
            '<td class="black"><input onblur="submitComments(this.value)" type="text"><br>'+d.comments+'</input></td>'+            
        '</tr>'+                                               
    '</table>'+    
   '</div>'; 
}
函数格式(d){
var cssClass=“”;
如果(d.国家!=“美元”){
cssClass=“红色”;
}
否则{
cssClass=“黑色”;
}
返回“”+
''+
''+
“保存”+
''+
''+
“客户”+
“+d.客户+”+
“价值”+
''+d.值+''+
“评论”+
“
”+d.comments+” ''+ ''+ ''; }
您的错误本质上是因为您正在执行以下操作:

return "Something" + if(condition){}else{} + " else";
这是Javascript的非法语法

有两种解决办法;第一个是使用内联if语句,如下所示:

return "Something" + (x == y ? "output if succeeded" : "output if not") + ".";
因此,您的内联if将变成:

+ (d.country !== "usd" ? '<td class="red">'+d.value+'</td>' : '<td class="black">'+d.value+'</td>') +
+(d.country!=“usd”?“”+d.value+“”+d.value+“”)+
或者,对于第二种解决方案,您可以有一个输出字符串,将内容附加到该字符串中,如下所示:

function format(d){
    var output = "";

    output += "Testing code";

    if(d.country !== "usd"){
        output += "Woo we succeeded";
    }

    output += " more testing <i>code<i>.";

    return output;
}
函数格式(d){
var输出=”;
输出+=“测试代码”;
如果(d.国家!=“美元”){
输出+=“哇,我们成功了”;
}
输出+=“更多测试代码。”;
返回输出;
}
更改此选项:

        if (d.country !== "usd") {
          '<td class="red">'+d.value+'</td>'+
        } else {
          '<td class="black">'+d.value+'</td>'+
        } 
if(d.country!=“usd”){
“+d.价值+”+
}否则{
“+d.价值+”+
} 
为此:

+((d.country !== "usd")?'<td class="red">'+d.value+'</td>':'<td class="black">'+d.value+'</td>')+ 
+((d.country!=“usd”)?“”+d.value+“”:“”+d.value+“”)

语法错误。不能像这样在字符串中添加代码that@CodeGodie是的,我想我的
这是一个语法问题吗?
语句涵盖了这样一个事实,即我已经理解了……所有这些回答都是一个很好的学习体验,但这是我将要讨论的一个。它允许我在
返回后保持代码不变,但只需在此之前插入变量并使用它们。非常感谢你!对我来说,这似乎是一个简单的疏忽:)这也太棒了!我不知道我能做到这一点。我还要读三元运算符。非常感谢你@那么这不是正确的答案吗(好吧,我只能将一个标记为正确答案。它们都是正确的,所以我标记了一个,并给你们其余的人假互联网分数。我选择了另一个答案,因为这是我最终选择的解决方案。是的,这也很好!感谢你花时间写这篇文章-它教会了我很多我可以采取的不同方法。)谢谢。太棒了。很高兴能帮上忙。
+((d.country !== "usd")?'<td class="red">'+d.value+'</td>':'<td class="black">'+d.value+'</td>')+