jquery求教.动态加载的dom元素怎么获取。

时间:2022-12-20 21:54:26
用ajax获取数据后我把它们放在ul的li中,我点击ul后需要让这个ul变色。
但是由于这个ul是动态加载的。一直获取不到这个ul.
我尝试用class标识,各种方法。
求解阿。大哥们。

11 个解决方案

#1


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="http://www.wanmei.com/public/js/jq_132.js"></script>
</head>

<body>
<div id="EmpFee"></div>
<script>
    for (var i = 0; i < 1; i++) {
  $("#EmpFee").html("<ul onclick='abc()'><li class='left'>" + 111 + "</li></ul>");
  };
  
  function abc(){alert()}

</script>

</body>
</html>

不用append用html就可以了 

#2



中午那个问题解决了谢谢你,不过现在问题变啦


我需要的是动态添加这个dom元素的属性了。
比如我加了一个div下的ul .class为蓝色。
这个ul点一下,可以变红。他的兄弟还是蓝色。

#3


我直接给这个ul添加addclass或者是attr它的background都不行,都没反应。
我估计这个ul是动态添加的dom所以不能直接设新属性,得用个什么中间变量..唉头大。

#4


你的意思是点击那个动态添加的ul让它改变背景色颜色?

#5


对的对的,最好你的例子循环能有两个ul。点一下另一个变回来,点的那一个有特殊色。
嘿嘿。我的两个问题都是你在答 .~

#6


不停止刷新csdn中。

#7


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="http://www.wanmei.com/public/js/jq_132.js"></script>
<style>
.red{ background:#F00;}
.blue{background:#00F;}
</style>
</head>

<body>
<div id="EmpFee"></div>
<script>
    for (var i = 0; i < 1; i++) {
  $("#EmpFee").html("<ul onclick='abc(this)' class='blue'><li class='left'>" + 111 + "</li></ul><ul onclick='abc(this)' class='blue'><li class='left'>" + 222 + "</li></ul>");
  };
  
  function abc(t){
   var uls = t.parentNode.getElementsByTagName('ul'),
len = uls.length;
for(var i = 0; i < len; i++){
uls[i].className = 'blue';


t.className = 'red';

  }

</script>

</body>
</html>

#8


看看是这意思吗?

#9


我的就是不变色,,,你的这个就可以。
但是我用的事件也能触发,比如alert就可以输出字,但是就是css样式没有改变。55555

#10


 onclick='abc(this)'
每个Ul方法都传入this

function abc(t){
方法上加上形参t

<style>
.red{ background:#F00;}
.blue{background:#00F;}
</style>
页面加上样式


你查查~·看看都跟我写的一样吗

#11


$(function() {
            $("#ul").toggle(
            function() {
                $("#ul").attr("backgroundColor", "Red");
            },
            function() {
                $("#ul").attr("backgroundColor", "Blue");
            }
            );
        });

这种方式你试一下,$("#ul")是你ul的id

#1


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="http://www.wanmei.com/public/js/jq_132.js"></script>
</head>

<body>
<div id="EmpFee"></div>
<script>
    for (var i = 0; i < 1; i++) {
  $("#EmpFee").html("<ul onclick='abc()'><li class='left'>" + 111 + "</li></ul>");
  };
  
  function abc(){alert()}

</script>

</body>
</html>

不用append用html就可以了 

#2



中午那个问题解决了谢谢你,不过现在问题变啦


我需要的是动态添加这个dom元素的属性了。
比如我加了一个div下的ul .class为蓝色。
这个ul点一下,可以变红。他的兄弟还是蓝色。

#3


我直接给这个ul添加addclass或者是attr它的background都不行,都没反应。
我估计这个ul是动态添加的dom所以不能直接设新属性,得用个什么中间变量..唉头大。

#4


你的意思是点击那个动态添加的ul让它改变背景色颜色?

#5


对的对的,最好你的例子循环能有两个ul。点一下另一个变回来,点的那一个有特殊色。
嘿嘿。我的两个问题都是你在答 .~

#6


不停止刷新csdn中。

#7


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="http://www.wanmei.com/public/js/jq_132.js"></script>
<style>
.red{ background:#F00;}
.blue{background:#00F;}
</style>
</head>

<body>
<div id="EmpFee"></div>
<script>
    for (var i = 0; i < 1; i++) {
  $("#EmpFee").html("<ul onclick='abc(this)' class='blue'><li class='left'>" + 111 + "</li></ul><ul onclick='abc(this)' class='blue'><li class='left'>" + 222 + "</li></ul>");
  };
  
  function abc(t){
   var uls = t.parentNode.getElementsByTagName('ul'),
len = uls.length;
for(var i = 0; i < len; i++){
uls[i].className = 'blue';


t.className = 'red';

  }

</script>

</body>
</html>

#8


看看是这意思吗?

#9


我的就是不变色,,,你的这个就可以。
但是我用的事件也能触发,比如alert就可以输出字,但是就是css样式没有改变。55555

#10


 onclick='abc(this)'
每个Ul方法都传入this

function abc(t){
方法上加上形参t

<style>
.red{ background:#F00;}
.blue{background:#00F;}
</style>
页面加上样式


你查查~·看看都跟我写的一样吗

#11


$(function() {
            $("#ul").toggle(
            function() {
                $("#ul").attr("backgroundColor", "Red");
            },
            function() {
                $("#ul").attr("backgroundColor", "Blue");
            }
            );
        });

这种方式你试一下,$("#ul")是你ul的id