如何在字符串中使用运算符三元组?
考虑下面的代码片段我想:如何在字符串中使用运算符三元组?
<script>
for (var key in photoList) {
if(key == photoList[key].id) {
var res = `<li id="thumbnail-`+key+`">
<div class="thumbnail `+(product.photo == photoList[key].id)+` ? 'thumbnail-main' : ''">
...
</div>
</li>`;
}
}
</script>
我尝试这样,但它没有工作?我该怎么做?
当你围成的坟墓标记(')的字符串,它允许对字符串连接插表达,称为template literal这在ES2015中是新的。您的三元运算符是的表达式,因此您可以在字符串插值中使用${expr}
表示法来插入表达式。既然你已经使用模板文字,没有理由做串联,从而:
var res = `<li id="thumbnail-${key}">
<div class="thumbnail ${product.photo == photoList[key].id ? 'thumbnail-main' : ''}>
...
</div>
</li>`;
任何你想用一个表达式的字符串连接,你可以使用插值。因此,而不是:
'1 + 1 = ' + (1 + 1)
你可以这样做:
`1 + 1 = ${1 + 1}`
因为1 + 1
是一个表达式。
似乎你可以帮助我。看看这个:https://*.com/questions/44665670/how-can-i-solve-uncaught-syntaxerror-unexpected-identifier-in-string-javascript –
你在做就OK了,但缺少字符串连接
<script>
for (var key in photoList) {
if(key == photoList[key].id) {
var res = `<li id="thumbnail-`+key+`">
<div class="thumbnail `+(product.photo == photoList[key].id ? 'thumbnail-main' : '') + `">
...
</div>
</li>`;
}
}
它应该是:
<script>
for (var key in photoList) {
if(key == photoList[key].id) {
var res = '<li id="thumbnail-'+key+'"><div class="thumbnail ' + ((product.photo == photoList[key].id)+ ? 'thumbnail-main' : '') + ">
...
</div>
</li>';
}
}
</script>
似乎你可以帮助我。看看这个:https://*.com/questions/44665670/how-can-i-solve-uncaught-syntaxerror-unexpected-identifier-in-string-javascript –
for (var key in photoList) {
if (key === photoList[key].id) {
var res = `
<li id="thumbnail-${key}">
<div class="thumbnail ${
(product.photo === photoList[key].id) ? 'thumbnail-main' : ''
}">
...
</div>
</li>`;
}
}
的可能的复制[?如何写用jQuery这个三元操作符(https://*.com/questions/6595585/how-to-write-这三元操作符与jquery) –
https://*.com/questions/6259982/how-do-you-use-the-conditional-operator-in-javascript – user7929528
Theres a'before the?使它成为一个字符串 –