document.getElementById("login").onclick = function(event){
event = event || window.event;
var target = event.srcElement || event.target,
context = target.innerHTML;
console.log(context);
}把这个id换成你需要点击的模块的父元素上面试试,没有做其他的处理,你如果需要判断是不是子元素只包含文字,不包含其他标签的话,就去target做判断就行了。试试看。
event = event || window.event;
var target = event.srcElement || event.target,
context = target.innerHTML;
console.log(context);
}把这个id换成你需要点击的模块的父元素上面试试,没有做其他的处理,你如果需要判断是不是子元素只包含文字,不包含其他标签的话,就去target做判断就行了。试试看。
解决方案 »
- 如何将带有参数的url地址整体作为另一个url地址的参数跳转
- secha touch的转场效果怎么实现?
- JS正则表达式提取文章前两段该怎么写??
- jsp页面上选项卡实现的问题
- gif动态图片设置
- 又是兼容问题,this对象在firefox不支持,该如何解决啊
- 关于xhtml中div的scrollTop属性总是为0的问题
- 从子窗体向父窗体上的文本框里传值的问题,求助大家,拜托
- js控制2个div循环显示问题
- 使用document.getElementById("adl").style.top获取不到style标签中定义的样式吗?
- 16进制形式的字符串,如\u0063\u0073\u0064\u006E,从文本框输入,怎样转为普通字符串,如csdn?
- 求大神分析一下代码
替换如下
alert($(this).html())
2,value='"+obj[i]+"'>"
3,是不是固定了节点层数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../lib/jquery/jquery-1.9.1.js"></script>
</head>
<body>
<div id='menuTree'></div><script>
var str = "";
var uid=0;
var forTree = function(obj){
for(var i in obj){
var urlstr = "";
var links="#";
//var id=guid();
if(typeof obj[i] == "object"){ //如果有子节点
//alert(i);
urlstr = "<div><span>"+ i +"</span><ul>";
}else{
urlstr = "<div><span><a href="+links+" value='"+obj[i]+"' id='my" +uid +"' >"+ i +"</a></span><ul>";
++uid;
}
str += urlstr;
if(obj[i] != null && typeof obj[i] == "object"){
//alert(obj[i]);
forTree(obj[i]);
}
str += "</ul></div>";
}
return str;
}
var json = {
students:{
manager:{
name:'jo',
job:'wer'
},
student:{
t:'vvd',
tew:'vert'
}
}
};
var $a = forTree(json);
document.getElementById("menuTree").innerHTML = $a;
/*树形菜单*/
var menuTree = function(){
//给有子对象的元素加[+-]
$("#menuTree ul").each(function(index, element) {
var ulContent = $(element).html();
var spanContent = $(element).siblings("span").html();
if(ulContent){
$(element).siblings("span").html("[+] " + spanContent)
}
});
$("#menuTree").find("div span").click(function(){
var ul = $(this).siblings("ul");
var spanStr = $(this).html();
var spanContent = spanStr.substr(3,spanStr.length);
if(ul.find("div").html() != null){
if(ul.css("display") == "none"){
ul.show(300);
$(this).html("[-] " + spanContent);
}else{
ul.hide(300);
$(this).html("[+] " + spanContent);
}
}
});
for(var i=0;i<uid;i++){
$('#my'+i).click(function(){
alert($(this).attr('value'));
});
}
/*
$("#menuTree").find("div span a").click(function(){
alert($('a').val());//我想要在这边弹出点击过后的节点值
alert('===============');
});
*/
/*
$("a").each(function () {
alert($(this).val() + ":" + $(this).text());
})
*/
}()</script>
</body>
</html>
2楼这样只获取到节点名字,相当于$(this).text(),但是我要获取的是节点的值,我知道问题出在哪了,原来<a>没有value这个属性,把value改成title就行了,虽然有点别扭