如何使用jquery获取动态输入文本的值?

时间:2014-06-02 23:16:45

标签: php jquery ajax

我的jQuery看起来像 -

<script type="text/javascript" language="javascript">
$(document).ready(function() {
   $("[id^=SelectAssignThis-]").click(function(){
       var ProjectID = $("[id^=GetProjectID-]").val();
       var UserIntID = $("[id^=GetUserIntID-]").val();
       $.ajax( {
          type : 'GET',
          url:'test1.php',
          data : {ProjectID: ProjectID, UserIntID :UserIntID},
          success:function(data) {
             $('#ShowAjaxesult').html(data);
          }
       });
   });
});
</script>

我的php代码看起来像 -

while($row = mysql_fetch_array($QueryResult))
{
    $ProjectID                 = $row['ProjectID'];
    $Tiltle                    = $row['Title'];
    ?> <tr>
            <td><a href="#" id="SelectAssignThis-<?php echo $ProjectID; ?>">Assign</a></td>                    
            <td><input type="hidden" id="GetUserIntID-<?php echo $ProjectID; ?>" value="<?php echo $UserIntID; ?>">
                <input type="hidden" id="GetProjectID-<?php echo $ProjectID; ?>" value="<?php echo $ProjectID; ?>">
            </td>
            <td><?php echo $ProjectID; ?></td>
            <td><?php echo $Tiltle; ?></td>
       </tr><?php
};

现在我的jQuery val ProjectID总是返回与第一次出现的while循环相对应的ProjectID。对于eg-IF while循环发生十次,我点击第五次出现的<a>id=SelectAssignThis-5),我得到的ProjectID值对应<a> 1 {} id=SelectAssignThis-1。我希望ProjectID的值与id=SelectAssignThis-5相对应<a>,当我选择第6次出现时类似id=SelectAssignThis-6,依此类推。请帮忙。

1 个答案:

答案 0 :(得分:0)

val方法返回第一个匹配元素的值。使用this关键字:

var $td = $(this).closest('td').next();
var ProjectID = $td.find("[id^=GetProjectID-]").val();
var UserIntID = $td.find("[id^=GetUserIntID-]").val();

建议:

  • 向元素添加className并使用类选择器,属性选择器效率不高。
  • 不要将StudlyCase标识符用于非构造函数。
  • 您还可以将隐藏的输入放在第一个单元格中,并使用siblings方法选择目标元素。