【问题标题】:JavaScript innerHTML with substring带有子字符串的 JavaScript innerHTML
【发布时间】:2015-04-15 16:29:14
【问题描述】:

试图将多个字符串放在括号内。为什么这不适用于子字符串?收到错误“分配中的左侧无效”。

<div id="p1"></div>

document.getElementById("p1");
var item1 = "item1";
var item2 = "item2";
var item3 = "item3"

p1.innerHTML="( )";

p1.innerHTML.substring(1,1) = item1 + item2 + item3;

结果应该是:(item1item2item3)。实现这一目标的最佳方法是什么?

jsfiddle:https://jsfiddle.net/qua1ity/w457hq6n/1/

谢谢!

【问题讨论】:

  • 你必须总是assignp1.innerHTML来更新它,你没有在最后一行这样做,所以大概p1.innerHTML = p1.innerHTML.substring(0,1) + item1 ...

标签: javascript substring innerhtml


【解决方案1】:

如果您必须保留您的代码(即您不能更改任何内容),您可以尝试:

p1.innerHTML = p1.innerHTML.substring(0,1) + item1 + item2 + item3 + p1.innerHTML.substring(2,3);

See Updated fiddle

否则,最简单的方法是在这里使用@Toby 的答案: https://stackoverflow.com/a/29655908/600486

【讨论】:

    【解决方案2】:

    这就是子字符串的工作原理http://www.w3schools.com/jsref/jsref_substring.asp

    如果你想在括号中包装一些变量,这样做

    p1.innerHTML = "("+item1 + item2 + item3+")";
    

    【讨论】:

      【解决方案3】:

      应该是:

      p1.innerHTML = p1.innerHTML.substring(0,1) + item1 + item2 + item3 + p1.innerHTML.substring(1,1);
      

      这假设p1.innerHTML 的当前值为()

      【讨论】:

      • 你试过这个答案吗?
      • 编辑它以修正错字和稍微不正确,对不起!
      猜你喜欢
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2015-09-11
      相关资源
      最近更新 更多