2017-06-16 53 views
0

考虑下面的代码片段我想:如何在字符串中使用运算符三元组?

<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> 

我尝试这样,但它没有工作?我该怎么做?

+1

的可能的复制[?如何写用jQuery这个三元操作符(https://stackoverflow.com/questions/6595585/how-to-write-这三元操作符与jquery) –

+0

https://stackoverflow.com/questions/6259982/how-do-you-use-the-conditional-operator-in-javascript – user7929528

+0

Theres a'before the?使它成为一个字符串 –

回答

7

当你围成的坟墓标记(')的字符串,它允许对字符串连接插表达,称为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是一个表达式。

+0

似乎你可以帮助我。看看这个:https://stackoverflow.com/questions/44665670/how-can-i-solve-uncaught-syntaxerror-unexpected-identifier-in-string-javascript –

0

你在做就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>`; 
    } 
} 

0

它应该是:

<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> 
+0

似乎你可以帮助我。看看这个:https://stackoverflow.com/questions/44665670/how-can-i-solve-uncaught-syntaxerror-unexpected-identifier-in-string-javascript –

0
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>`; 
    } 
}