jquery通过class获取a标签里面的值,附给button,并且关闭弹出框,怎么写呀
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery通过class获取a标签里面的值,附给button,并且关闭弹出框,怎么写呀相关的知识,希望对你有一定的参考价值。
<html><head><title>省市公司页面</title><script type="text/javascript"> function proListJSON(divid) //省动态刷新 $.ajax( type : 'POST', url : '$pageContext.request.contextPath/proController/proListJSON', dataType : 'json', success : function(result) $.each(result, function() $("#proList").append("<li>" + "<a class='aclick' href='javascript:;' >" + this.proName + "</a>" + "</li>"); ); , error : function() ); function orgListJSON(proName) //省市公司动态刷新 $.ajax( type : 'POST', url : '$pageContext.request.contextPath/orgController/orgJSON?proName='+proName, dataType : 'json', success : function(result) return result.orgName; , error : function() ); //弹出框加载触发器 $(document).ready(function() new PopupLayer(trigger:"#ele8",popupBlk:"#blk8", onBeforeStart:function() proListJSON(proList); ); ); //给botton赋值 $(document).ready(function() $(".aclick").click(function() var proName = $(this).html(); var orgName = orgListJSON(proName); $("#ele8").val(orgName); $("#emample8").hide(); ); );</script></head>
<body>
这样写获取不到点击事件,赋值也不成功,另外问下点击完要隐藏弹出框,怎么弄?
// 由于你的 <li> 是动态生成的,你在使用 $.ajax 的时候也没有指定 同步加载
// 所以可能是先执行了下面的 $(".aclick") 绑定事件了
// 在 <a> 还没有生成的时候,就对齐进行绑定,因此是无效的
// 而且你的 <li> 是根据选择结果动态生成的,建议把你的绑定事件写到
// $("#proList").append("<li>"); 之后
// 去掉最后一个 $(document).ready 给 button 赋值的代码
// 改动你的 success:function() 如下
$.each(result, function()
var proName = this.proName;
// 这里循环定义 li 标签
var li = $("<li><a class='aclick' href='javascript:void(0);'>"+proName +"<a></li>");
// 然后再对该标签进行 click 绑定
li.click(function()
$("#ele8").val(proName);
$("#emample8").hide();
)
// 这里 append 一个已经带有 click 事件的 li 就OK了
$("#proList").append(li);
);追问
刚试了下,还是监听不到点击呀
追答你的HTML页面引用了Jquery.js了吗?如果有的话,要看看是否有监听事件的触发,你可以修改
li.click(function()
alert("我被触发了");
)
如果可以alert出来,则是赋值语句的问题
这段代码明显有问题呀,只加载了一个数据,就hide了。
追答你估计没理解好li.click(function())这个方法
li.click(function()) 这一句的意思是,这个 li 控件点击的时候,执行 function() 里面的方法体,加载数据和点击,是没有必然联系的
可以加下我Q吗?9。2。4。5。1。9。7 我弄了好久没弄出来。。。
参考技术A 你ready时json获取到了A标签,然后再写到页面中时,再用ready绑定click操作,这样js是获取不到你append进去的A标签的,因为,ready就表示是你加载页面的时候获取到页面元素,而你又动态写入了A元素,那么你写之前,已经加载完成,所以找不到A标签。所以你的$(".aclick").click事件不能用ready,我觉得你写到button上,或者将js写到页面的最后(不能用ready)追问
可以给个具体的代码吗?不写ready的话 ,用什么?我是小白,急用,拜托了
追答你这代码我这里不好运行啊。。你自己试试,就是写到: $("#proList").append("" + "" + this.proName + "",这个里边写个click事件,然后你把你的click处理放到这个函数里边
参考技术B //动态追加的元素,事件绑定用bind或者live$(".aclick").live('click',function(e)
.....
)追问
可以把我需要改动的地方,具体写下代码吗?我是小白。
我的需求是点击“省份”,进数据库查询出来,对应的公司。然后赋值在输入框(我这里用的是button),然后隐藏弹出框。
代码你不是都写好了么?直接把你的$(".aclick").click() 换成
$(".aclick").live('click',function(e)
.....
)
不就行了吗?
以上是关于jquery通过class获取a标签里面的值,附给button,并且关闭弹出框,怎么写呀的主要内容,如果未能解决你的问题,请参考以下文章