2015-09-25 63 views
0

點擊我有一個HTML控件表如何獲得的值,如aselect,等等。現在,當我在a標籤點擊我要在firsttd當TD表

得到span價值,我試過這樣的:

$('tr > td a').on('click', function(e) { 
 
    alert($(this).parent().find('td').eq(0).find('span').html()); 
 
});
table, tr, td, th { 
 
    width: 750px; 
 
    border: 1px solid black; 
 
    border-collapse: collapse; 
 
    align: centre 
 
} 
 
select, a { 
 
    display: block; 
 
}
<table> 
 
    <tr> 
 
    <th>Name</th> 
 
    <th>Clicks</th> 
 
    <th>Clicks2</th> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <span id="span1">Hi!</span> 
 
     <a href="#">Save</a> 
 
    </td> 
 
    <td style="block"> 
 
     <a href="#" class="Click" id="click1">Click Me</a> 
 
     <select> 
 
     <option>1</option> 
 
     </select> 
 
    </td> 
 
    <td> 
 
     <a href="#" class="Click" id="click2">Click Me</a> 
 
     <select> 
 
     <option>2</option> 
 
     </select> 
 
    </td> 
 
    </tr> 
 
</table> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

Fiddle link

我試圖僅在點擊a時才顯示popup,但每次單擊td時都會彈出。

所以我給了a標籤一個類Click並試圖實現相同,但不能。

如何顯示彈出只有當a點擊

+2

歡迎堆棧溢出!請[參觀],環顧四周,並閱讀[幫助],尤其是[*我如何提出一個好問題?](/ help /如何問)任何與您的問題相關的代碼必須**在**你的問題中,不能鏈接。鏈接腐爛,使得問題及其答案將來對人們無用,人們不應該遵循一些隨機鏈接來幫助你。如果問題沒有意義,沒有鏈接就無法回答,這個網站不適合。相反,在問題中放置[** minimum ** complete example](/ help/mcve)。 –

+0

我已經將你的小提琴代碼移到了上述問題中。你可能想要檢查我是否正確地完成了。 –

+0

當您點擊任何「td」的第一個「td」或「a」標籤的'a'標籤?如果對任何'a'標籤,那麼你可以寫這個'alert($(this).closest('tr')。find('td')。eq(0).find('span')。html()) ;'找到最接近的'tr',然後在裏面找到第一個'td'和'span'。這裏是** [DEMO](http://jsfiddle.net/Guruprasad_Rao/462640us/4/)** –

回答

1

adisplay:block因此它保持了td的整個空間。給你一個display:inline-block。這將使a只佔用它需要的空間。然後你的點擊處理程序將工作。

0

您還可以在'a'標籤內使用javascript函數onclick =「functionname()」並在該函數中編寫彈出代碼。

0

此代碼

$('tr > td a').on("click"... 

增加了一個click處理的a,那麼this裏面是a,所以

$(this).parent() 

給出了TD其次

.find('td') 

將試圖找到一個tdtd內,這將不會發生

爲了得到第td使用closest其上升的父母,直到如果找到目標,即:

$(this).closest('tr').find('td:first').find('span').html() 

$("td:first > span", $(this).closest('tr')).html() 

(或.eq(0),如果你不喜歡:first

0

你可以ASIGN一類跨度在你的第一列,說myClass,像這樣:

<table> 
    <tr> 
     <th>Name </th> 
     <th>Clicks</th> 
     <th>Clicks2</th> 
    </tr> 
<tr> 
    <td> 
     <span class="myClass" id = "span1">Hi!</span> 
     <a href="#">Save</a> 
    </td> 
    <td style="block"> 
     <a href="#" class="Click" id="click1">Click Me</a> 
     <select> 
      <option>1</option> 
     </select> 
    </td> 
    <td> 
     <a href="#" class="Click" id="click2">Click Me</a> 
     <select> 
      <option>2</option> 
     </select> 
    </td> 
    </tr> 
</table> 

,並使用jQuery像這樣:

$('td > a').on('click', function (e) { 
    alert($(this).parents('tr').find(".myClass").html()); 
}); 

here

0

剛改變你的腳本

$(function(){ 
    $('tr > td a').on('click', function(e) { 
     alert($(this).parent().find('td').eq(0).find('span').html()); 
    }); 
}); 

對此

$(function() { 
    $('tr > td a').on('click', function (e) { 
     alert($(this).parent().find('span').html()); 
    }); 
}); 

這裏是一個的jsfiddle:https://jsfiddle.net/CanvasCode/hdzswrn7/