2015-02-10 2 views
0

Я таблицу следующим образом:Получить значение в ячейке таблицы с JQuery

<table width="100%" border="0" cellspacing="0" cellpadding="0" class="lanpaizt-tab"> 
       <tr class="lanpaizt-tr1"> 
        <td class="wid70">id</td> 
        <td class="wid150">nickname</td> 
        <td class="wid150">account</td> 
        <td class="wid150">mail</td> 
        <td class="wid100">tel</td> 
        <td>operate</td> 
       </tr> 

       <tr> 
        <td rowspan="2" id="member_id">2</td> 
        <td rowspan="2">lisi</td> 
        <td>dksdkl</td> 
        <td>[email protected]</td> 
        <td rowspan="2">123456</td> 
        <td rowspan="2"> 
         <button class="editbtn"></button> 
         <button class="deletebtn"></button> 
        </td> 
       </tr>   
       <tr> 
        <td>sdlsd</td> 
        <td>[email protected]</td> 
       </tr> 

</table> 

Я хочу, чтобы получить значение ячейки, ИД «member_id» с двумя способами, но не удалось:

1 .

$('.deletebtn').click(function(){ 

    var user_id = $(this).closest('#member_id').text() 
    console.log(user_id) 
}) 

2.

$('.deletebtn').click(function(){ 

    var user_id = $(this).closest('tr').siblings('#member_id').text() 
    console.log(user_id) 
}) 

Оба они получают пустое значение. Что случилось с моим кодом? Есть ли другой способ его получить? Благодарю.

ответ

2

проблема в вашем подходе есть #member_id является родственным удалять кнопки Материнской td. Вы должны пересечься с родительским элементом и найти его родного брата, используя:

$('.deletebtn').click(function(){ 

    var user_id = $(this).parent().siblings('#member_id').text() 
    console.log(user_id) 
}); 

Идентификаторы (должны быть) уникальными. Вы можете просто использовать получить элемент, используя идентификатор selector.the необходимость перемещения и нахождения будут устранены:

var user_id = $('#member_id').text(); 
0

попробовать что-то вроде этого:

$(this).closest('#member_id').html() 
+0

Не может работать. Он просто становится неопределенным – user1179442

0

Id должен быть уникальным путем из DOM, и вы должны непосредственно получить объект Jquery, используя селектор идентификатора, нет необходимости пройти через элементы, используя методы, как .find(), .closest() и т.д., см ниже код -

$('.deletebtn').click(function(){ 

    var user_id = $('#member_id').text() 
    console.log(user_id) 
}) 
1

Попробуйте это: http://jsfiddle.net/ouL1p1k9/

$('.deletebtn').click(function(){ 

    var user_id = $(this).closest('tr').find('#member_id').text() 
    alert(user_id) 
}); 

ИЛИ

$('.deletebtn').click(function(){ 

     var user_id = $(this).closest('tr').find('td:first-child').text() 
     alert(user_id) 
    }); 
0

Это не большое, но решение этого заключается в следующем:

$('.deletebtn').click(function(){ 

     var user_id = $(this).parent().parent().find('#member_id').text(); 
     console.log(user_id) 
}) 

Вы могли бы также рассмотреть вопрос об установлении значения member_id на фактическом удалении кнопки:

<button class="deletebtn" id='2'></button> 

И затем введите код обработчика javascript следующим образом:

$('.deletebtn').click(function(){ 

     var user_id = $(this).prop('id'); 
     console.log(user_id) 
}) 

Но предположим, что это не имеет большого значения, как вы к этому подошли.

Смежные вопросы