日期:2014-05-16  浏览次数:20514 次

为什么attr('id')获得不到ID?
因为页面上有好多的文本框要验证,所以想到一个办法想先遍历页面上的文本框,然后根据ID值进行判断,结果发现获得不到ID值,代码如下:

       //对input为text进行遍历
$(":text").each(function(){
alert(this.attr('id'));
        }

得到不了ID值,百思不得其解,希望大侠点拨一下,不胜感谢!

jquery each attr

------解决方案--------------------
id肯定用源生的方法比较快,而且input取text的时候,建议使用className,如果按类型取的话,这个东西是不可控的。

<!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" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <title>test</title>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
</head>
<body>
<input type="text" class="textinput" name="" id="test-btn">
<input type="text" class="textinput" name="" id="test-btn2">
<input type="submit" class="submit" value="test submit">
<script type="text/javascript">
    $('.submit').click(function(){
        $('.textinput').each(function(){
            // alert($(this).attr('id'));
            alert(this.id);
        });
    });
</script>
</body>
</html>

------解决方案--------------------
引用:
TypeError: this.val is not a function
[在此错误处中断] 

alert(this.val());


你要搞清楚this,这个this是当前这个dom;
 val()这个方法是jquery的方法,需要$(this).val();
------解决方案--------------------
引用:
因为页面上有好多的文本框要验证,所以想到一个办法想先遍历页面上的文本框,然后根据ID值进行判断,结果发现获得不到ID值,代码如下:

       //对input为text进行遍历
$(":text").each(function(){
alert(this.attr('id'));
        }

得到不了ID值,百思不得其解,希望大侠点拨一下,不……


看2楼 光百思没用  一个调试就能解决的问题
------解决方案--------------------
juqery和dom不能混用的,val()是jquery的方法,所以前面的也要用jquery的方法,$(this).val()。
或者直接写,this.value也可以。