javascript
  • variable-assignment
  • 2011-06-28 48 views 2 likes 
    2

    我相信我在做一些愚蠢的位置:无效分配左侧,JavaScript的

    var addhtml = '<div id="leftbio" class="left-float">' 
    += '<div id="bioname">e["screen_name]</div>' 
    += '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
    += '<div id="biodetails">e["description"]</div>' 
    += '</div>';    // invalid assignment left-hand side 
    console.log(addhtml); 
    

    和NetBeans告诉我,invalid assignment left-hand side错误。

    怎么了?

    +4

    + =在那里做什么? a +是你想要的 –

    回答

    13

    你不需要+=来连接,你只需要+

    这是确定

    var addhtml = '<div id="leftbio" class="left-float">' 
    + '<div id="bioname">e["screen_name]</div>' 
    + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
    +'<div id="biodetails">e["description"]</div>' 
    + '</div>';   
    console.log(addhtml); 
    
    +2

    YESSSS ..那就是我的意思..简单的字符串连接.. * smack_self * ..:)谢谢:) –

    +1

    谢谢,这给了我一个线索我正面临类似的错误。我正在尝试'$(this).data('var')= true'而不是'$(this).data('var',true);' – andrewtweber

    9

    +=的意思是“取左边的东西,加上它,并将结果存储在左边的东西”。 +=的左侧是文字(第一个是'<div id="leftbio" class="left-float">)。你不能分配到文字。

    换句话说,a += b基本上是指a = a + b。你可以看到如果a是一个文字而不是一个变量,那怎么办?

    你只是想+有:

    var addhtml = '<div id="leftbio" class="left-float">' 
    + '<div id="bioname">e["screen_name]</div>' 
    + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
    + '<div id="biodetails">e["description"]</div>' 
    + '</div>'; 
    console.log(addhtml); 
    

    给你++=之间的差别的一个想法:

    var a, b; 
    a = "foo"; 
    b = a + "bar"; // Doesn't modify `a` 
    console.log(a); // "foo" 
    console.log(b); // "foobar" 
    

    var a, b; 
    a = "foo"; 
    b = a += "bar"; // Modifies `a` (assigning the result to `b` is unusual -- very -- but valid) 
    console.log(a); // "foobar" - note it's changed 
    console.log(b); // "foobar" 
    

    题外话

    我也建议缩进赋值语句的后续行,但是这只是风格:

    var addhtml = '<div id="leftbio" class="left-float">' 
        + '<div id="bioname">e["screen_name]</div>' 
        + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
        + '<div id="biodetails">e["description"]</div>' 
        + '</div>'; 
    console.log(addhtml); 
    
    0

    不需要=

    var addhtml = '<div id="leftbio" class="left-float">' 
        + '<div id="bioname">e["screen_name]</div>' 
        + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
        + '<div id="biodetails">e["description"]</div>' 
        + '</div>';    // invalid assignment left-hand side 
        console.log(addhtml); 
    
    0

    您不能连锁归属运营商,如+=

    var addhtml = '<div id="leftbio" class="left-float">' 
           + '<div id="bioname">e["screen_name]</div>' 
           + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
           + '<div id="biodetails">e["description"]</div>' 
           + '</div>';    // invalid assignment left-hand side 
    console.log(addhtml); 
    
    1

    x += yx = x + y速记这是你想要在这里不是什么。

    要么使用:

    var addhtml = '<div id="leftbio" class="left-float">'; 
    addhtml += '<div id="bioname">e["screen_name]</div>'; 
    addhtml += '<div id="biophoto"><img src="e["profile_image_url"]"/></div>'; 
    addhtml += '<div id="biodetails">e["description"]</div>'; 
    addhtml += '</div>'; 
    

    或:

    var addhtml = '<div id="leftbio" class="left-float">' 
        + '<div id="bioname">e["screen_name]</div>' 
        + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
        + '<div id="biodetails">e["description"]</div>' 
        + '</div>'; 
    
    2

    赋值(=)是没有必要的,你可以只使用+。还有其他两种方法来构建多行字符串:

    // method 1: use continuation \ 
    var addhtml = '\ 
         <div id="leftbio" class="left-float"> \ 
          <div id="bioname">e["screen_name]</div> \ 
          <div id="biophoto"><img src="e["profile_image_url"]"/></div> \ 
          <div id="biodetails">e["description"]</div> \ 
         </div>'; 
    
    //method 2: use an array and join the elements 
    var addhtml = [ 
         '<div id="leftbio" class="left-float">', 
         ' <div id="bioname">e["screen_name]</div>', 
         ' <div id="biophoto"><img src="e["profile_image_url"]"/></div>', 
         ' <div id="biodetails">e["description"]</div>', 
         '</div>' 
        ].join(''); 
    
    相关问题