2012-01-11 5 views
0

내가 만드는거야 테이블 : 여기선택한 행/celll에서 값을 가져

<table> 
    <tr> 
     <th>Column</th> 
    </tr> 

    @foreach (var item in someList) 
    { 
     foreach (var item1 in item) 
     { 
      <tr> 
       <td onclick="myMethod();">@item1.name</td> 
      </tr> 
     } 
    } 
</table> 

그리고는 행이 선택 될 때 호출되는 방법입니다 :

<script type="text/javascript" language="javascript"> 
function myMethod() { 
    var clickedCell = $(this); 
    alert(clickedCell.text()); 
} 
</script> 

을하지만 그것은 작동하지 않습니다 ! 선택/클릭 한 행/셀에서 텍스트를 가져 오는 방법은 무엇입니까?

<script type="text/javascript" language="javascript"> 
function myMethod() { 
    alert($(this).html()); 
} 
</script> 

와 테이블이 가득 althought 그것은 나를 널주고 :

나는 또한 시도했다.

+1

'myMethod'라는 함수가 없습니다. – RedFilter

+0

@RedFilter 질문을 업데이트했습니다. –

답변

1

난 당신이 jQuery를 사용하고이 라인에서 추론 해요 : 그런 경우에는

var clickedCell = $(this); 

이의 다시 순간을위한 조치를 취할하고 HTML에서 자바 스크립트를 분리 할 수 ​​있습니다. 이 대신 :

인라인 (일반적으로 눈살을 찌푸리게한다) 자바 스크립트,이 같은 시도가
<td onclick="myMethod();">@item1.name</td> 

:

<td class="clickableCell">@item1.name</td> 

지금 그냥 마크 업있어, 조금 청소기입니다.

$(document).ready(function() { 
    $('td.clickableCell').click(function() { 
     alert($(this).text()); 
    }); 
}); 

을 지금 this jQuery를이 클릭 이벤트를 구속력이있는 요소를 의미, 그것은 쉽게 코드에서 참조 할 수 있도록 전달하는 데 반대 : 다음 당신은 당신의 렌더링 세포에 이벤트를 클릭하여 연결해야합니다 HTML 내에서 클릭 이벤트의 자체 참조가 바인딩됩니다 (다른 접근 방식이지만 코드와 함께 마크 업 믹싱의 길을 계속합니다).

관련 문제