string concatenation using javascript
我正在尝试以下列方式构建HTML字符串:
1 2 3 4 5 | htmlString = '<html>'; var headerString ="image1"; var sImage ="Android_images/"+headerString+".png"; htmlString += '<img src='+sImage+' />'; htmlString = '</html>'; |
我需要动态附加图像字符串,但它显示:
1 | <img src=Android_images/dfdfd.png /> |
您在最后一行重新设置变量:
1 | htmlString = '</html>'; |
添加
1 2 3 4 5 | var htmlString = '<html>'; var headerString ="image1"; var sImage ="Android_images/" + headerString +".png"; htmlString += '<img src="' + sImage + '" />'; htmlString += '</html>'; |
另外,为什么这里有
使用下面的代码
1 2 3 4 5 | var htmlString = '<html>'; var headerString ="image1"; var sImage ="Android_images/"+headerString+".png"; htmlString += '<img src="'+sImage+'" />'; htmlString += '</html>'; |
"htmlString"将包含以下输出
1 | <html><img src="Android_images/image1.png" /></html> |
认为它会对你有所帮助。
尝试:
1 2 3 4 5 | var htmlString = '<html>'; var headerString ="image1"; var sImage ="Android_images/"+headerString+".png"; htmlString += '<img src="'+sImage+'" />'; htmlString += '</html>'; |
你应该总是使用
不使用var有两个主要缺点:
-
访问未在其中定义的函数内的变量
该函数将使解释器查找范围链
对于具有该名称的变量,直到它找到一个或它到达
全局对象(可通过浏览器通过窗口访问)
创建一个属性。这个全球财产现在随处可用,
可能导致混乱和难以察觉的错误; -
访问未声明的变量将导致ECMAScript 5出错
严格模式。
在这里和最后一行完美地工作你应该使用
1 | htmlString += '</html>'; |
在开始使用之前,您尚未将htmlString定义为变量:
1 | var htmlString = '<html>'; |
1 2 3 | var htmlString = '<html>'; htmlString += '</hmtl>'; |