你好,关于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>";
展开
 我来答
xiehou_aj
2011-08-12 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:95
采纳率:100%
帮助的人:39.9万
展开全部
这样直接将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
追问
谢谢你的详细解答!但是最为关键的是我用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");
}
);
});
chenweidi232
2011-08-14 · TA获得超过674个赞
知道小有建树答主
回答量:858
采纳率:50%
帮助的人:401万
展开全部
给新生成的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);
};
追问
我的这个字符串拼接的其实是动态生成的树,我要实现的功能是点击树的某个节点那该节点颜色变红,点击另一节点,上一节点的颜色变回原色,另一节点变红,我这个地方就不能直接绑定函数,用this属性呀,这只能取到一个节点的id,那其他节点的id我就不知道怎么取了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
壳大阅读
2011-08-14 · TA获得超过535个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:308万
展开全部
var obj = document.getElementById(ls.ClassID);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丶樱男
2011-08-17 · TA获得超过107个赞
知道答主
回答量:185
采纳率:0%
帮助的人:161万
展开全部
取对象值
var the_div_id = document.getElementById("test").innerHTML
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式