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

只想说jQuery都忘干净了。。。帮忙看一下。。。
大晚上的,心血来潮,写了以下代码,居然不执行。。。

    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">
        $(function () {
            var $txts = $(".aaa");
            for (var txt in $txts) {
                alert(txt.value);  //一直以为遍历之后的txt是js对象
            }
        });
    </script>

<body>
    <form id="form1" runat="server">
    <div>
        <asp:CheckBox ID="CheckBox1" runat="server" />
        <input id="Text1" type="text" class="aaa" value="1"/>
        <input id="Text2" type="text" class="aaa" value="2"/>
        <input id="Text3" type="text" class="aaa" value="3"/>
    </div>
    </form>
</body>

jQuery

------解决方案--------------------
$(".aaa").each(function(){
    alert($(this).val());
});
------解决方案--------------------
虽然只有几行JS,但是错误真不少。。。首先for-each循环语法不对,应该是for(txt in txts)这种形式,而且txt是下标,txts[txt]才是数组中的元素;其次,是逻辑上的错误,$(.aaa)返回的是一个标签数组,打印出来的内容是

如果你用for-each形式循环的话,会发现弹出无数个undefined。直接用数组长度作为哨兵值就好了。代码如下

<script type="text/javascript" language="javascript">
        $(function () {
            var txts = $(".aaa");
            for(var i = 0; i < txts.length; ++i)
                alert(txts[i].value);
        });
</script>

------解决方案--------------------

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("input[class='aaa']").each(function(){
alert($(this).val());
});
})
</script>
 
<body>
     <form id="form1" runat="server">
     <div>
         <!--<asp:CheckBox ID="CheckBox1" runat="server" />-->
         <input id="Text1" type="text" class="aaa" value="1"/>
         <input id="Text2" type="text" class="aaa" value="2"/>