Получить значение из выбранной строки / ячейки - PullRequest
0 голосов
/ 11 января 2012

Я создаю таблицу так:

<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>

и это дает мне ноль, хотя стол полон.

1 Ответ

1 голос
/ 11 января 2012

Из этой строки я делаю вывод, что вы используете 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 (что является другим подходом, но продолжает смешивать разметку с кодом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...