2012-01-11 125 views
0

我創建表:獲取價值

<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 2012-01-11 16:28:32

+0

@RedFilter我更新了問題。 – 2012-01-11 16:29:49

回答

1

我從這一行,你使用jQuery推斷:

var clickedCell = $(this); 

如果是這樣的話,讓我們退一步一會兒,你的JavaScript從HTML代碼中分離。取而代之的是:

<td onclick="myMethod();">@item1.name</td> 

其中有在線的JavaScript(這通常是令人難以接受的),嘗試這樣的事情:

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

現在它只是標記,這是一個有點清潔。接下來,你需要附加點擊事件渲染的細胞:

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

現在this指元素到jQuery是結合的Click事件,所以它可以在代碼中輕鬆引用,而不是讓通從HTML中綁定的click事件引發的自引用(這是另一種方法,但繼續沿着將代碼與標記混合的道路)。