在字符串中添加带空格的元素

red*_*lue 2 html javascript d3.js

我在d3js中使用foreigobject追加一个html元素.这是html

.html(function(d) {return "<span onclick=processParams('"+str+"')><i class='fa fa-plus-circle'></i></span>";})
Run Code Online (Sandbox Code Playgroud)

问题是如果str值包含空格,它就会中断.因此,对于'xyz'的str值,我得到了元素,

<span onclick="processParams('xyz')"><i class="fa fa-plus-circle"></i></span>
Run Code Online (Sandbox Code Playgroud)

但是对于'xyz abc'的str值.它以某种方式变成,

<span onclick="processParams('xyz" abc')=""><i class="fa fa-plus-circle"></i></span>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Pau*_*oub 6

你需要引用你的属性.

你的第二个例子是返回HTML:

<span onclick=processParams('xyz abc')><i class='fa fa-plus-circle'></i></span>
Run Code Online (Sandbox Code Playgroud)

由于您没有引用,"onclick"的值在到达空格时结束.余数(abc'))被视为另一个参数名称,没有任何价值.

尝试:

.html(
  function(d) 
  {
    return "<span onclick=\"processParams('"+str+"')\"><i class='fa fa-plus-circle'></i></span>";
  }
 );
Run Code Online (Sandbox Code Playgroud)

  • 当然有效.我正在寻求"帮助OP了解正在发生的事情以及为什么"的方法. (2认同)