使用包含HTML的String参数向onclick添加函数

时间:2016-07-06 13:52:36

标签: javascript html

我想在onc​​lick中添加一个带有3个参数的函数:int,int,string。包含HTML和其他引用的字符串参数。可能吗?。我在这里看到pass string,但它不适合我的情况。

 <p onclick="myfunction(0,3,'<b">FirstName =
 \"Dondellx\"\n<b>LastName</b> = \"Batacx\"\n<b>path</b> = 
 \"xxxpath\""');dondell
 </p>

这个包含带有许多\\字符的字符串的函数实际上来自一个JSON文件,我把它放在&#34; p&#34;在读取JSON时循环标记。

我正在做的是获取JSON项并放入字符串参数;

//This is a for loop
<p onclick="myfunction(0,3,'dataFromJSon[0]')"></p>
<p onclick="myfunction(0,3,'dataFromJSon[1]')"></p>
<p onclick="myfunction(0,3,'dataFromJSon[2]')"></p>

enter image description here

这是输入我的文字的文本编辑器。 正如你所看到的,我在textArea中有引号,所以我需要用qoutations保存它。 :

enter image description here

这是JSON:

enter image description here

2 个答案:

答案 0 :(得分:1)

这肯定是因为HTML和JavaScript代码中存在很多语法错误。

没有正确转义引号,没有在javascript字符串声明中转义换行符,HTML标记未正确关闭,属性值未正确定义...

也许可以试试这个(我已经为假设实现了假myfunction并将\n替换为<br/>,换行符在HTML中没有意义。

&#13;
&#13;
function myfunction(a,b,str){
  var row = document.createElement('div');
  row.innerHTML = str;
  document.body.appendChild(row);
}
&#13;
<p onclick="myfunction(0,3,'<b>FirstName = &quot;Dondellx&quot<br/><b>LastName</b> = &quot;Batacx&quot;<br/><b>path</b> = &quot;xxxpath&quot;');">dondell
</p>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

你的html确实是错误的,所以我创建了一个更简单的演示。希望它仍然有用,因为我使用一个对象传递html代码以及其他参数。

&#13;
&#13;
var object = {a:0,b:3,c:'<b>FirstName=</b>Dondellx'};
function myfunction(obj){
  document.getElementById("out").innerHTML=obj.c;
}
&#13;
<p onclick="myfunction(object)">click</p>
<div id="out"></div>
&#13;
&#13;
&#13;