Mam następujący kodu fragment:

<table border="0">
  <tr id="24655">
    <td>
        <a href="http://localhost/eprime/entprm/web/control/modules/questions/match_question.php?op=get_question_detail&question_ids=72224,24655,69412#searchPopContent" title="View question" class="inline_view_question_detail">QUE24655</a>
        <a class="c-icn c-remove delete_question" onClick="return ConfirmDelete()" title="Delete question"> Delete</a><br />        
    </td>
    <td class="question" align="center" valign="top">         
        92.86<br />                       
    </td>
  </tr>
</table>

Teraz możesz mi powiedzieć, jak uzyskać dostęp do <tr id="24655"> w jQuery po kliknięciu na hiperłącza podane w <a> znacznik w powyższym kodzie?

0
user2838698 7 grudzień 2013, 06:40

4 odpowiedzi

Najlepsza odpowiedź

Usuń wkładaną obsługę zdarzeń na korzyść jQuery

<table border="0">
    <tr id="24655">
        <td> 
            <a href="http://localhost/eprime/entprm/web/control/modules/questions/match_question.php?op=get_question_detail&question_ids=72224,24655,69412#searchPopContent" title="View question" class="inline_view_question_detail">QUE24655</a>  
            <a class="c-icn c-remove delete_question" title="Delete question"> Delete</a>
            <br />
        </td>
        <td class="question" align="center" valign="top">92.86
            <br />
        </td>
    </tr>
</table>

Następnie wewnątrz Handler Event this odnosi się do elementu kliknięć, dzięki czemu można użyć .closest () Aby znaleźć element tr, a następnie użyj .attr (), aby uzyskać identyfikator atrybut

jQuery(function () {
    $('.delete_question').click(function (e) {
        var $this = $(this),
            id = $this.closest('tr').attr('id');
        alert(id);

        e.preventDefault();
    })
})

DEMO: Fiddle

1
Arun P Johny 7 grudzień 2013, 02:44
try closest
   var i = $(this).closest('tr').attr('id');
   console.log(i);
0
Osama Jetawe 7 grudzień 2013, 02:43

Dodaj this w funkcji onclick zadzwoń i niż zbierz obiekt i przekonwertuj go do obiektu jQuery , ale sugeruję, abyś śledzić Arun P Johny's odpowiedź, ponieważ w takim przypadku nie musisz zmieniać żadnego kodu w znaczniku.

<table border="0">
  <tr id="24655">
    <td>
        <a href="http://localhost/eprime/entprm/web/control/modules/questions/match_question.php?op=get_question_detail&question_ids=72224,24655,69412#searchPopContent" title="View question" class="inline_view_question_detail">QUE24655</a>
        <a class="c-icn c-remove delete_question" onClick="return ConfirmDelete(this)" title="Delete question"> Delete</a><br />        
    </td>
    <td class="question" align="center" valign="top">         
        92.86<br />                       
    </td>
  </tr>
</table>

<script type="text/javascript">
  function ConfirmDelete(obj) {
    console.debug($( this ).parent('tr[id]'));
  }
</script>
0
ARIF MAHMUD RANA 7 grudzień 2013, 03:07
<table border="0">
  <tr id="24655">
    <td>
        <a href="http://localhost/eprime/entprm/web/control/modules/questions/match_question.php?op=get_question_detail&question_ids=72224,24655,69412#searchPopContent" title="View question" class="inline_view_question_detail">QUE24655</a>
        <a class="c-icn c-remove delete_question" onClick="return ConfirmDelete()" title="Delete question"> Delete</a><br />        
    </td>
    <td class="question" align="center" valign="top">         
        92.86<br />                       
    </td>
  </tr>
</table>
<script>
    $(function(){
        $('a.c-remove').click(function(){
          var tr = $(this).parent().parent();
            alert(tr.attr('id'));
        });
    });
</script>
0
Ringo 7 grudzień 2013, 03:07