如何在jquery函数中使用keyup获取不同的id值

时间:2012-12-22 17:05:36

标签: php html jquery

$(document).keyup(function(e){
         var idd = $(".hidd").val();// Here i can't get the correct value of "class hidd" and always get value 1

         var sss = ".comment_tarea" + idd;
          $tArea = $(sss);
          alert(sss);
        if ($tArea.is(":focus") && e.keyCode == 13) {
        var t = $tArea.val();  
    }  
     }); 
        $id1=0;
     while(...){
                $id1++;
        <form >
          <?  $t =$id1; $comment_tarea = "comment_tarea".$t; 
              echo("comment");
              echo($comment_tarea);
          ?>
        <textarea class="<? echo $comment_tarea; ?>" name="tarea"></textarea>
    <input type="hidden" class="hidd" value="<?php  echo htmlspecialchars($id1); ?>" />
        </form>

}

在Jquery函数中,类&#34; hidd&#34;的变量idd中始终存在值1。对于所有textarea,这意味着$ comment_tarea的所有类,例如&#34; comment_trea1&#34;,&#34; comment_trea2&#34;,&#34; comment_trea3&#34;,&#34; comment_trea4&#34;,.. ..... ans等等。 这里textarea输入值由$ id1改变,这是唯一的。 如何获得正确的idd值意味着获得idd = 1用于&#34; comment_trea1&#34 ;,得到idd = 2用于&#34; comment_trea2&#34 ;,得到idd = 3用于&#34; comment_trea3&#34;等等... 请帮助。

2 个答案:

答案 0 :(得分:2)

.val()仅返回第一个匹配元素的值。

您需要做的是在每个匹配的元素上调用.val():

$(".hidd").each(function() {
  alert($(this).val());
});

答案 1 :(得分:0)

您正在将val()与选择器一起使用,它将始终返回零索引处的元素值。要获取one索引处元素的值(如果存在),您可以使用$(".hidd").eq(1).val();

您最好将keyup与文本区域绑定,而不是与文档绑定。当你在循环中生成表单时,每个循环迭代生成带有隐藏字段的textarea。您可以relate隐藏字段enclosing textarea。

$("textarea[name=tarea]").keyup(function(e){
     var idd = $(this).closest('form').find('.hidd').val();
      //your code
}