嗨,我正在做一个项目,遇到了一个奇怪的问题。
<html>
<head><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script></head>
<body>
<div id="tree" style="height:500px;width:300px;float:left;">
<script>
var JSONObject= {"className":"com.alta.entity.Person","key":"this","modifier":1,"value":"Person [id\u003d1001, firstName\u003dShiju]","level":0,"elementArray":[
{"className":"java.lang.Long","key":"id","modifier":17,"value":"1001","level":1,"elementArray":[]},{"className":"java.lang.String","key":"firstName","modifier":17,"value":"Shiju","level":2,"elementArray":[{"className":"java.lang.Character","key":"0","modifier":17,"value":"S","level":3,"elementArray":[]},{"className":"java.lang.Character","key":"1","modifier":17,"value":"h","level":4,"elementArray":[]},{"className":"java.lang.Character","key":"2","modifier":17,"value":"i","level":5,"elementArray":[]},{"className":"java.lang.Character","key":"3","modifier":17,"value":"j","level":6,"elementArray":[]},{"className":"java.lang.Character","key":"4","modifier":17,"value":"u","level":7,"elementArray":[]}]},{"className":"java.util.ArrayList","key":"addressArray","modifier":1,"value":"[com.alta.entity.Address@10045eb]","level":3,"elementArray":[{"className":"com.alta.entity.Address","key":"0","modifier":1,"value":"com.alta.entity.Address@10045eb","level":4,"elementArray":[{"className":"java.lang.Long","key":"id","modifier":17,"value":"1001","level":5,"elementArray":[]},{"className":"java.lang.String","key":"addressLine","modifier":17,"value":"This is addredss Line","level":6,"elementArray":[{"className":"java.lang.Character","key":"0","modifier":17,"value":"T","level":7,"elementArray":[]},{"className":"java.lang.Character","key":"1","modifier":17,"value":"h","level":8,"elementArray":[]},{"className":"java.lang.Character","key":"2","modifier":17,"value":"i","level":9,"elementArray":[]},{"className":"java.lang.Character","key":"3","modifier":17,"value":"s","level":10,"elementArray":[]}]}]}]}]};
var elementList= JSONObject.elementArray;
var elementContainer=document.createElement('ul');
var objectArray = new Array();
function createObjectArray(elementClassName,elementValue,elementId,elementModifier){
obj=new Object();
obj.id = elementId;
obj.className = elementClassName;
obj.value = elementValue;
obj.modifier = elementModifier;
objectArray.push(obj);
}
function valuesOnClick(element2){
/*var element2ID=element2.id;
var reqID = element2ID[0];*/
alert("callllllllllllllll -- > "+$(event.target).text());
//document.getElementById('Class').innerHTML= element2.id.toString();
/*var id = $(element2).attr('id');
for (var i=0;objectArray.length;i++){
if (id===objectArray[i].id){
document.getElementById('Class').innerHTML= objectArray[i].className;
document.getElementById('Value').innerHTML= objectArray[i].value;
}
}*/
}
function generateGuid()
{
var result, i, j;
result = '';
for(j=0; j<32; j++)
{
if( j == 8 || j == 12|| j == 16|| j == 20)
result = result + '-';
i = Math.floor(Math.random()*16).toString(16).toUpperCase();
result = result + i;
}
return result
}
//document.getElementById('tree').appendChild(test(JSONObject));
/*function load(){
alert("Looading ...........");
var element = document.getElementById('tree');
console.log(createUls(JSONObject));
element.appendChild(createUls(JSONObject));
}
var id = 1;
function createUls(element){
var ul = document.createElement('ul');
var exLi = document.createElement('li');
exLi.innerHTML = element.key;
ul.appendChild(exLi);
var elementArray = element.elementArray;
for(var i=0; i<elementArray.length; i++){
var cElement = elementArray[i];
var li = document.createElement('li');
li.innerHTML = cElement.key;
if(cElement.elementArray.length > 0){
li.appendChild(createUls(cElement));
}
ul.appendChild(li);
}
return ul;
}*/
function createObjectGraph(element){
var ul = document.createElement('ul');
var li = document.createElement('li');
var tempID = generateGuid();
li.setAttribute('id',tempID);
li.setAttribute('onclick','valuesOnClick()');
li.innerHTML = element.key;
ul.appendChild(li);
createObjectArray(element.className,element.value,tempID,element.modifier);
var elementArray = element.elementArray;
var ul2 = document.createElement('ul');
li.appendChild(createTree(elementArray,ul2));
return ul;
}
function createTree(list,container){
if(list){
for(var i=0;i<list.length;i++){
var li = document.createElement('li');
var tempID = generateGuid();
li.setAttribute('id',tempID);
li.setAttribute('onclick','valuesOnClick()');
li.innerHTML = list[i].key;
if (list[i].elementArray.length > 0) {
var ul = document.createElement('ul');
li.appendChild(ul);
var innerElement=list[i].elementArray;
createTree(innerElement, ul);
}
container.appendChild(li);
}
}
return container;
}
document.getElementById('tree').appendChild(createObjectGraph(JSONObject));
</script>
</div>
<div id="content" style="height:200px;width:400px;float:left;">
Input: <input align ="justify" type="text" id="Class" style="width:400px;"><br>
Class: <input align ="justify" type="text" id="Class" style="width:400px;"><br>
Value: <input align ="center" type="text" id="Value" style="width:400px;"><br>
</div>
<br/>
<hr/>
<ul>
<li onclick= 'valuesOnClick(this)'>thisss
<ul>
<li onclick= 'valuesOnClick(this)'>id</li>
<li onclick= 'valuesOnClick(this)'>firstName
<ul>
<li value ="Value" onclick= 'valuesOnClick(this)'>0</li>
<li onclick= 'valuesOnClick(this)'>1</li>
<li onclick= 'valuesOnClick(this)'>2</li>
<li onclick= 'valuesOnClick(this)'>3</li>
<li onclick= 'valuesOnClick(this)'>4</li>
<li onclick= 'valuesOnClick(this)'>5</li>
</ul>
</li>
<li onclick= 'valuesOnClick(this)'>addressArray
<ul>
<li onclick= 'valuesOnClick(this)'>0</li>
<li onclick= 'valuesOnClick(this)'>id</li>
<li onclick= 'valuesOnClick(this)'>addressLine
<ul>
<li onclick= 'valuesOnClick(this)'>0</li>
<li onclick= 'valuesOnClick(this)'>1</li>
<li onclick= 'valuesOnClick(this)'>2</li>
<li onclick= 'valuesOnClick(this)'>3</li>
<li onclick= 'valuesOnClick(this)'>4</li>
<li onclick= 'valuesOnClick(this)'>5</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</body>
当我运行此代码时,我打算获取单个 li 的值(我确实得到了),但是对于同一次单击事件,我会收到多个警报代码正在工作,如果您愿意,可以自己尝试。有人可以向我解释代码中的问题或解决方案吗?提前感谢您的帮助