1
$(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 函数中,所有 textarea 类“hidd”的变量 idd 中始终存在值 1,这意味着 $comment_tarea 的所有类,例如“comment_trea1”、“comment_trea2”、“comment_trea3”、“comment_trea4”…… ……等等。这里的 textarea 输入值由唯一的 $id1 更改。如何获得正确的 idd 值意味着为“comment_trea1”获取 idd=1,为“comment_trea2”获取 idd=2,为“comment_trea3”获取 idd=3,等等...请帮助。

4

2 回答 2

2

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

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

$(".hidd").each(function() {
  alert($(this).val());
});
于 2012-12-22T17:09:00.533 回答
0

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

您最好将其keyup与文本区域绑定,而不是与文档绑定。当您在循环中生成表单时,每次循环迭代都会生成带有隐藏字段的文本区域。您可以使用表单textarearelate隐藏字段。enclosing

$("textarea[name=tarea]").keyup(function(e){
     var idd = $(this).closest('form').find('.hidd').val();
      //your code
}  
于 2012-12-22T17:08:52.697 回答