注册 登录
编程论坛 JavaScript论坛

jquery如何不通过控件ID来获取控件中的值

Sephirose 发布于 2015-04-07 16:55, 2255 次点击
有一个table,里面的有多个动态生成的<input type="text">控件,原先获取其中的值可以通过控件的ID来获取$("#id").val()。有没有什么方法可以不通过ID来获取控件中的值呢?
7 回复
#2
冰镇柠檬汁儿2015-04-07 22:07
假设table的id是tab,那么可以用如下写法
var inputs = document.getElementByID('tab').getElementByTagName('input');
inputs[0].value之类的值就是你想要得到的DOM元素的value值。
jQuery写法我不是太清楚,隐约记得应该这么写:
var inputs = $("#id input");
inputs[0].val();
#3
Sephirose2015-04-10 16:40
回复 2楼 冰镇柠檬汁儿
但是这样的话,应该如何确定需要调用的控件是第几个呢,应为是动态生成的,所以这个不太好确定啊。是想实现将控件中输入的值取出来,去跟另外的数据作比较,但是取值不是通过控件ID来定位控件取值。
#4
凌风zx2015-04-11 21:17
<input type="text"><input type="button" onclick=" getVal(this)"/>

function getVal(input)
{
    $("input").prev().val();
}

[ 本帖最后由 凌风zx 于 2015-4-11 21:21 编辑 ]
#5
冰镇柠檬汁儿2015-04-11 21:45
回复 3楼 Sephirose
你说的这个问题很容易解决
第一步:监控table标签的onclick事件,通过冒泡原则,就能够得知是table中的哪个标签被点击
第二步:这一步需要得知被点击标签,在table属于第一个同类标签,这里可以for循环比较,也可以定义一个“data-”之类的属性来直接定位
第三步:根据刚刚得到的位置,获取table中同一个位置的input标签,就可以得到具体的值用来比较了。
#6
Sephirose2015-04-13 11:20
回复 5楼 冰镇柠檬汁儿
不用点击,是要验证这些输入内容,每一个都要验证,要符合规则,我开始是设置一个class,然后将所有这个class的值取出,然后each(),不过最后发现,这样子取出来后,要想把每一行中指定的两个控件之间作比较就很麻烦了。同时还需要把每一行的分别取出来,存入数据库中去
#7
冰镇柠檬汁儿2015-04-15 16:59
那就不onclick呗,直接读table下的值不就可以了?你连个代码结构都不给,我也没办法告诉你更细节的,只能说说思路
#8
冰镇柠檬汁儿2015-04-15 17:25
楼主看看能在这般的第一个帖子里头票不,帮忙投一票
1