Insert javascript into javascript html return
Insert javascript into javascript html return
我有一个使用javascript return
函数返回的HTML表。它运行良好,直到我尝试在其中添加额外的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>';
}
添加 if
子句时代码失败。 这是语法问题吗? 我该如何破坏 HTML 一秒钟,以便我可以在返回中添加额外的 javascript? 我的目标是在行的货币以美元为单位时添加 td 类red
,但我不知道如何让它工作。
使用三元运算符,例如:
... etc ...
+
'<td class="dropHeader">Value</td>'
+
(d.country !== "usd" ? '<td class="red">'+d.value+'</td>' : '<td class="black">'+d.value+'</td>')
+
'<td class="dropHeader">Comments</td>'
+
... etc ...
你的错误是因为,本质上,你正在做以下等效的事情:
return "Something" + if(condition){}else{} + " else";
这是Javascript的非法语法。
对此有两种解决方案;第一种是使用内联 if 语句,如下所示:
return "Something" + (x == y ? "output if succeeded" : "output if not") + ".";
所以你的内联如果会变成:
+ (d.country !== "usd" ? '<td class="red">'+d.value+'</td>' : '<td class="black">'+d.value+'</td>') +
或者对于第二个解决方案,您可以有一个输出字符串,将内容附加到其中,如下所示:
function format(d){
var output = "";
output += "Testing code";
if(d.country !== "usd"){
output += "Woo we succeeded";
}
output += " more testing <i>code<i>.";
return output;
}
这样做
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>';
}
更改以下内容:
if (d.country !== "usd") {
'<td class="red">'+d.value+'</td>'+
} else {
'<td class="black">'+d.value+'</td>'+
}
对此:
+((d.country !== "usd")?'<td class="red">'+d.value+'</td>':'<td class="black">'+d.value+'</td>')+
相关文章:
- Javascript Return and if/else
- Javascript用函数return替换局部变量
- JavaScript中的“return cb()”有缺点吗
- 为什么javascript在'return false'
- Fizz Buzz return value javascript
- JavaScript:return WebForm_FireDefaultButton();这个函数在做什么,我该如何复
- javascript在调用return redirect之前无法工作
- return语句在JavaScript中使用而不中断函数
- JavaScript onkeydown, return true,false
- 提交之间的差异=“;return false”;并且onsubmit=“;javascript:return false
- 使用 PHP 提供 Javascript:Return/Echo URL/URI
- Javascript return var++
- javascript return google analytics javascript
- Javascript "return this" meet the "return&quo
- JavaScript return false 不会阻止其他函数的执行
- javascript return URL onClick
- Javascript return var
- Javascript: return在promise完成之前触发
- Javascript Return False适用于html,而不是head
- 这种语法在 JavaScript return {hello: “world”}[something] 中是什么意思