实际项目中,我们可能遇到过这样,需要按照用户需求,拼接多个内容以及格式一样的div。但是同样的div,id class什么的也是一样的,我们应该怎么去进行取值呢。

如果下级标签只是div的子代的话,这个时候我们使用

$(".div类名").eq(i).children("#子代对应ID").val()即可拿到我们需要的值

但是如果下级标签被一层div包起来了,这个时候就算是子代div的子代了,这个时候children()就不好用了,我们应该怎么办呢

$(".div类名").find("#后代对应的ID").eq(i).val()

这里我用了一个子代对应ID和

                          后代对应ID

如果我们需要获取的下级标签就是我们属于这个div的子代,那么这两种方式显然都是可行的

如果我们需要获取的下级标签不属于这个div的子代,可能是这个div的子代的子代,甚至是......,这个时候就只可以用后者了,

实际使用时候的代码

var divOne = $(".divOne");
var djj = "";
var djjInfo = [];
for(var i=0;i<divOne.length;i++){
djj = divOne.find("#equipCode").eq(i).val()+"#"+
divOne.find("#groupCode").eq(i).val()+"#"+
divOne.find("#personCode").eq(i).val()+"#"+
divOne.find("#venderCode").eq(i).val();
djjInfo.push(djj);
}

当然还有一种比较究极方法,虽然有一点麻烦吧,但是也是可以做到的

$("select[id=communicationTypes]").each(function(){
selectOption=jQuery(this).val();
communicationArrOne.push(selectOption);
})

就像这一段代码,我们在整个页面中,找到所有的这个id为这个名称的,然后通过each函数循环,这样我们也可以拿到所有的值了,但是如果需要获取的字段较多的话,这样的方式就显得过于繁琐了,不是特别推荐。这也是我最开始的时候使用的方法,用的时候也感觉不太好,一直想着改进呢。

其实最上面两种方法,总结一下就是children()与find()的区别,这个有兴趣的可以直接去看api

本篇文档主要为博主个人学习记录,如果可以帮到你,那样最好。大神看到也勿喷,这个主要是记录个人学习经历,谢谢。