2011-03-20 12 views
0

그래서 jquery와 같은 테이블 html이 있다고 가정 해 보겠습니다.Jquery로 숨겨진 요소 값 선택

클릭 저장에있는 groupid 값을 찾고 싶습니다.

내가

<table border="0" id="tableJoinList" cellpadding="4" cellspacing="5"> 
<tr><td colspan="3" align="left" style="padding-bottom:7px"> 
    <img src="../../Content/Images/doublelinegray.jpg" alt="doublelinegray.jpg" width="480px" height="4px" /> 
</td></tr> 
    @foreach (var item in Model.Groups) 
    { 
     <tr> 
      <td> 
       @Html.ActionLink("Join", "Join", new { id = item.GroupID }, new { @class = "Join" }) 
       @Html.Hidden("groupid", item.GroupID, new { @class = "groupid" }) 
      </td> 
      <td align="left"> 
       @item.GroupName 
      </td> 
      <td> 
       @item.DateAdded 
      </td> 
     </tr> 
    } 
<tr><td colspan="3" align="left"> 
    <img src="../../Content/Images/doublelinegrayreverse.jpg" alt="doublelinegrayreverse.jpg" width="480px" height="4px" /> 
</td></tr> 
</table> 

<script type="text/javascript"> 
$(function() { 
    $(".Join").live("click", function() { 
     var html = "<tr><td colspan='3'>Enter Password: &nbsp;&nbsp;<input type='password' class='pwd' />"; 
     html += "&nbsp;&nbsp;<input type='button' class='Save' value='Save' /></td></tr>"; 

     $(this).closest("tr").after(html); 

     $(".Save").live("click", function() { 
      alert($(this).siblings(".pwd").val()); 
      var json = { Password: $(this).siblings(".pwd").val(), GroupID: $(this).prev("tr").find(".groupid").val() }; 
      alert($(this).parent("tr").prev("tr").children(".groupid").val()); 
      return false; 
      $.ajax({ 
       url: "/Group/ConfirmPassword", 
       type: "POST", 
       dataType: 'json', 
       data: JSON.stringify(json), 
       contentType: "application/json; charset=utf-8", 
       success: function (result) { 
        if (result.Success == true) 
         window.location.href = result.Url; 
        else 
         alert(result.ErrorMessage); 
        return false; 
       } 
      }); 
     }); 
     return false; 
    }); 
}); 
</script> 
+1

일부 HTML이 누락되었다고 생각합니다. 저장 버튼은 어디에 있습니까? 당신의 문제가'$ (this) .parent ("tr"). prev ("tr")에있을 수 있기 때문에 행과 어떻게 관련이 있는지 알게 될 것입니다 children (". groupid")'올바르게 타겟팅되지 않았습니다. . 오, 최종 HTML을 공유하십시오. – Mottie

+0

저장 버튼은 가입 클릭 자바 스크립트에 있습니다. – Malcolm

답변

1

좋아 정의되지 않은 값 점점 오전, 나는 문제를 발견했다. .parent("tr")을 사용하면 DOM에서 한 레벨 씩 올라갑니다. 부모가 "tr"(이 경우 실제로 "td")이 아닌 경우 나머지는 무시합니다. 또한 .children()은 한 단계 아래로 내려 가면 대신 .find()을 사용해야합니다.

그래서 경고는 다음과 같이한다 : 여기

alert($(this).closest("tr").prev("tr").find(".groupid").val()); 

은 기본 demo이다.