我正在尝试通过javascript在我的html代码中创建一个li元素。这个li将有一个onclick功能。问题是尝试在loadDoc2()函数中传递文件路径作为参数时,会出现一些问题。我包括代码。
function myFunction(){
var x = "NEW";
var file = "'/static/BRANDS/PERLA/NEW COL/XML Files/NEW COL.xml'";
lis = "<li><a onclick='loadXMLDoc2(" + file + ")'>" + x + "</a></li>";
document.getElementById("demo").innerHTML = lis;
}
这给了我<a onclick="loadXMLDoc2(" static brands perla new col xml files new col.xml')'>NEW</a>
。斜线用空格代替,字母小写。我需要的结果是<a onclick="loadXMLDoc2('/static/BRANDS/PERLA/NEW COL/XML Files/NEW COL.xml')">NEW</a>
我尝试过很多东西,例如.replace(&#34; \&#34;,&#34; //&#34;)但它没有用。
答案 0 :(得分:3)
发生这种情况是因为您在开始时使用'和文件有'来启动onclick,因此它会关闭onclick属性。所以它看起来像
<li><a onclick='loadXMLDoc2('/static/BRANDS/PERLA/NEW COL/XML Files/NEW COL.xml')'>NEW</a></li>
我建议您使用javascript绑定事件,这会更容易。
function myFunction(){
var x = "NEW";
var file = "/static/BRANDS/PERLA/NEW COL/XML Files/NEW COL.xml";
var li = document.createElement('li');
var a = document.createElement('a');
a.innerHTML = x;
a.onclick = function(){
loadXMLDoc2(file);
}
li.appendChild(a);
document.getElementById("demo").appendChild(li);
}
答案 1 :(得分:0)
<div id="container"></div>
<script>
var container = document.getElementById('container');
var li = document.createElement('li');
li.innerText = "Im a list item";
li.onclick = function(){
console.log('I was clicked');
}
container.appendChild(li);
</script>
&#13;
答案 2 :(得分:0)
您似乎有相互矛盾的引号。
k='loadXMLDoc2('/
请注意var x = "NEW";
var file = "'/static/BRANDS/PERLA/NEW-COL/XML-Files/NEW COL.xml'";
lis = `<li><a onclick="loadXMLDoc2(${file})">${x}</a></li>`;
document.body.innerHTML = lis;
将会打开然后关闭引号。通过将单引号更改为双引号来修复:
let resultHtml = [];
resultHtml.push(<p key="resultScore"> Score: {currentResult} </p>);
if (Number(currentResult) < 0.5) {
resultHtml.push(<p key="resultScoreDesc"> Assenza di Fibrosi </p>);
}
else if (Number(currentResult) > 0.5 && Number(currentResult) < 1.2) {
resultHtml.push(<p key="resultScoreDesc">Fibrosi da F1 a F4, necessita di ulteriori indagini per chiarire il grado di fibrosi</p>);
}
else if (Number(currentResult) > 1.5) {
resultHtml.push(<p key="resultScoreDesc">Cirrosi </p>);
}