我想使用onclick调用函数loadInWhat并填充我的输入id =" what"使用LI的值
function createDivBox(data){
document.getElementById("whatContainer").style.display="block";
document.getElementById("whatContainer").classList.add("ac-container");
var node = "";
for (var i=0; i<data.Suggestions[0].Results.length;i++)
{
var textnode ='<li value="'+data.Suggestions[0].Results[i].Name+'" onclick="loadInWhat(this.value)">'+data.Suggestions[0].Results[i].Name+'</li>';
node = node.concat(textnode);
}
document.getElementById("whatContainer").innerHTML = '<div class="ac-content"><div class="ac-bd" id="ac-bd"><ul>'+node+'</ul></div></div>';
}
function loadInWhat(loadStr)
{
document.getElementById("what").value=loadStr;
}
我的函数在JSON对象数据的基础上动态创建了li元素。我希望如果我点击任何li元素,输入id =&#34; what&#34;字段由其值填充,即data.Suggestion [0] .Results [0] .Name
每当我通过此值时,只有&#39; 0&#39;通过了。
答案 0 :(得分:2)
li tag的值必须是整数。 Reference
我建议改用数据属性。
编辑:数据属性示例
像这样创建li(我将整个元素传递给javascript函数);
var textnode ='<li data-val="'+data.Suggestions[0].Results[i].Name+'" onclick="loadInWhat(this)">'+data.Suggestions[0].Results[i].Name+'</li>';
你可以在这样的Javascript中访问这个值;
function loadInWhat(el)
{
var loadStr = el.dataset.val;
document.getElementById("what").value=loadStr;
}