Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как получить содержимое ячейки таблицы (https://javascript.ru/forum/jquery/17679-kak-poluchit-soderzhimoe-yachejjki-tablicy.html)

Enxiro 29.05.2011 12:22

Как получить содержимое ячейки таблицы
 
Здравствуйте.
Вороде простая задача, но я не очень знаю jQuery поэтому что-то не могу сделать.
Задада: при клике на какую-либо строку таблицы содержимое ячейка с классом .row_description должно быть выведено на экран модальным окном.

саму строку, по которой был произведен клик нахожу так:
$('#admin-obj-living-grid .items > tbody > tr ').click(function(e){
// что здесь нужно написать?
}

где admin-obj-living-grid - id div-а контейнера, .items - класс таблицы
как мне теперь в этой функции добраться до td.row_description и получить содержимое этой ячейки?

monolithed 29.05.2011 14:59

$('td.foo').click(function() {
      alert($(this).html()); //выведет содержимое только той ячейки на которую кликнули и она имеет класс foo
)};


ну либо так (в зависимости от ситуации):

$('table td').click(function(event) {
    if(event.target.className == 'foo') {
        alert($(this).html());
    }
});


вариантов вагон.....

Enxiro 29.05.2011 15:13

не совсем то что я просил. ваш вариант - это клик по ячейке <td>
у меня же ситуация что кликаем по строке таблицы (<tr>) и в этой строке нужно найти ячейку с классом row_description и вывести её содержимое.
ну а соответственно строк таких много и в каждой ячейка с классом row_description. при клике на разные строки получать нужно именно свою ячейку

monolithed 29.05.2011 15:27

Цитата:

Сообщение от Enxiro
не совсем то что я просил. ваш вариант - это клик по ячейке <td>

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>

<script>
$(function() {
    $('table tr > td.foo').click(function(){
        alert($(this).html());
    });
});
</script>

<table>
    <tr>
        <td>text</td>
        <td class="foo">class="foo"->text1</td>
    </tr>
    <tr>
        <td>text</td>
        <td class="foo">class="foo"->text2</td>
    </tr>
</table>

Enxiro 29.05.2011 15:54

повторюсь: ваш код - это клик по ячейче с классом td.foo.
если я кликну на другую ячейку в этой же строке (т.е. на <td>text</td>) ничего не произойдет.
Мне нужно чтобы можно было кликать на любой <td> из строки.

Я пытался делать так:
$(function() {
    $('table tr').click(function(){
        alert($(this+' > td.foo').html()); // ЗДЕСЬ ЗАТЫК!
    });
});

Но не работает.

Enxiro 29.05.2011 16:36

Всё нашел. теперь я узнал о методе find
конкретно для моей задачи решение
$('#admin-obj-living-grid .items > tbody > tr').click(function(e){
		 alert($(this).find('td.row_description').html());
	});


Часовой пояс GMT +3, время: 00:36.