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,并且关闭弹出框,怎么写呀的主要内容,如果未能解决你的问题,请参考以下文章

如何把jquery的值放入img标签的src里面

jquery怎么获取lable标签里面的内容?

WebBrowser 获取页面标签class值

js如何获取动态添加的标签class?

jquery append的 class失效

jquery修改a标签中文本的值。