你好,关于javascript怎样获取动态生成div的Id值的问题,请帮帮我!
我有看见你以前帮别人解答的关于javascript怎样获取动态生成div的Id值的那个那例子,但是我的<div>使用字符串类型拼接起来的,这个我不知道怎么取值了。如下面d...
我有看见你以前帮别人解答的关于javascript怎样获取动态生成div的Id值的那个那例子,但是我的<div>使用字符串类型拼接起来的,这个我不知道怎么取值了。如下面div的写法:
StrClaInfo+="<li><div id='"+ ls.ClassID +"' name='StudentName' onmouseover=this.className='othertextselect' onmouseout=this.className='treeselect' class='treeselect' ><font size='2'>"+ ls.ClassName +"</font></div>"; 展开
StrClaInfo+="<li><div id='"+ ls.ClassID +"' name='StudentName' onmouseover=this.className='othertextselect' onmouseout=this.className='treeselect' class='treeselect' ><font size='2'>"+ ls.ClassName +"</font></div>"; 展开
4个回答
展开全部
这样直接将ID设置成一个动态的ID的时候,一般不能通过直接读取ID来达到你想要读取的模块,你可以这样想,是否可以通过它的父节点来读取它的ID值?或者这样想,你既然已经有一个特别的name属性在这个DIV种,是否能通过name属性来进行读取?
现在来说第一个方法:假如你在上面的代码的<li>标签中假如这样一个id :<li id="test">那么可以这样来找到DIV的ID值:
var the_div_id = document.getElementById("test").getElementsByTagName("div")[0].id;
这样要求一点点小技巧。
至于你说如何取DIV的动态ID,这样还不简单么?随便取个字符串然后加上一些有规律的数字不就好了?比如说用个for(var i=0;i<10;i++){}循环输出你上面的代码,那么你的ID可以直接写成:<div id=\"info"+i+"\" name=
这样你的DIV的ID不就有规律地从info0开始直到info9了??
在学习JAVASCRIPT的时候我建议你再看看jquery
现在来说第一个方法:假如你在上面的代码的<li>标签中假如这样一个id :<li id="test">那么可以这样来找到DIV的ID值:
var the_div_id = document.getElementById("test").getElementsByTagName("div")[0].id;
这样要求一点点小技巧。
至于你说如何取DIV的动态ID,这样还不简单么?随便取个字符串然后加上一些有规律的数字不就好了?比如说用个for(var i=0;i<10;i++){}循环输出你上面的代码,那么你的ID可以直接写成:<div id=\"info"+i+"\" name=
这样你的DIV的ID不就有规律地从info0开始直到info9了??
在学习JAVASCRIPT的时候我建议你再看看jquery
追问
谢谢你的详细解答!但是最为关键的是我用document.getElementById("test")或者document.getElementsByName("StudentName")这个我取不到写在拼接在字符串类型的对象;如果这个或者是直接写在body里面,就可以取到。
追答
难道你的LI不是写在BODY里面的?这样吧,用jquery的方法:
$(docuemnt).ready(function(){
var id = "";
id = $("li>div").find("[class=treeselect]").attr("id");//利用查找LI里面包含的DIV存在有CLASS=treeselect这样一个特性取得该模块,然后取得ID值
});
//其实你这样的需求根本不用获得ID的值
//给你写下我的想法和代码吧,无非就是你想改变LI里面的DIV的CLASS属性,触发的条件是鼠标移动到该DIV上去
//将下面的代码都复制到你的head之前
$(document).ready(function(){
//这里是所有LI里面的DIV都会触发这个事件,所以为了防止你又特别的需求,最好在DIV里面加上个特有的属性如:中的title属性
//然后写成这样 $("li>div[title=titles]").hover;
$("li>div").hover(
function(){
$(this).removeClass();
$(this).addClass("othertextselect");
},
function(){
$(this).removeClass();
$(this).addClass("treeselect");
}
);
});
展开全部
给新生成的DIV绑个函数就可以了.你要做什么动作就随意了.
StrClaInfo+="<li><div id='"+ ls.ClassID +"' name='StudentName' onclick="getDiv(this)" onmouseover=this.className='othertextselect' onmouseout=this.className='treeselect' class='treeselect' ><font size='2'>"+ ls.ClassName +"</font></div>";
function getDiv(obj){
alert("当前DIV的ID:"+obj.id);
};
StrClaInfo+="<li><div id='"+ ls.ClassID +"' name='StudentName' onclick="getDiv(this)" onmouseover=this.className='othertextselect' onmouseout=this.className='treeselect' class='treeselect' ><font size='2'>"+ ls.ClassName +"</font></div>";
function getDiv(obj){
alert("当前DIV的ID:"+obj.id);
};
追问
我的这个字符串拼接的其实是动态生成的树,我要实现的功能是点击树的某个节点那该节点颜色变红,点击另一节点,上一节点的颜色变回原色,另一节点变红,我这个地方就不能直接绑定函数,用this属性呀,这只能取到一个节点的id,那其他节点的id我就不知道怎么取了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var obj = document.getElementById(ls.ClassID);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取对象值
var the_div_id = document.getElementById("test").innerHTML
var the_div_id = document.getElementById("test").innerHTML
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询