2014-03-01 82 views
-3

我有以下html动态创建的表。点击获取一行的所有值

Name Value Option 
1  2  3 
4  5  6 
7  8  9 

现在我点击option 3我应该看到警报1 and 2 同样的,如果我点击6我应该警告框获得4 and 5

如何做到这一点?

示例代码

<table> 
    <tr> 
     <td>1</td> 
     <td class="approve">2</td> 
     <td class="">3</td> 
    <tr> 
    <tr> 
     <td>4</td> 
     <td class="approve">5</td> 
     <td class="">6</td> 
    <tr> 
    <tr> 
     <td>7</td> 
     <td class="approve">8</td> 
     <td class="">9</td> 
    <tr> 
</table> 




$(".approve").click(function() { 
    alert($(".approve").val); 
}); 
+2

这里有一个[教程的Javascript(http://www.codecademy.com/tracks/javascript)和[jQuery的教程]( https://learn.jquery.com/)。它们包含你需要知道的一切。 – Clive

+1

我知道js,jquery是如何工作的,我需要用于这个当前场景的代码或算法 – LynAs

+2

我们没有代码编写服务,如果您遇到困难,请自己去问问题一开始,你需要访问教程) – Clive

回答

1

尝试这种解决方案。

$('.click').on('click', function(){ 
    //var prev = $(this).parent().find('td:eq(0), td:eq(1)').text(); 
    var prev = $(this).parent().find('td').not($(this)).text(); 
    alert(prev); 
}) 

Fiddle Demo

+0

没有什么不对......如果你使用这个类的另一个元素,你也可以选择这样的特定元素。 –

+0

你也可以用'td'作为参数来使用'siblings'函数来获取同一父项下的所有td。 – UnTraDe

+0

@UntraDe:提问者不想要所有td的数据,提问者只需要前两个td的数据。 –

-1

在这里你去:

HTML:

<table> 
    <tr><th>A</th><th>B</th><th>C</th></tr> 
    <tr><td>1</td><td>2</td><td>3</td></tr> 
    <tr><td>4</td><td>5</td><td>6</td></tr> 
    <tr><td>7</td><td>8</td><td>9</td></tr> 
</table> 

的jQuery:

$("table").on("click", "td", function() { 
    var values = []; 

    $.each($(this).siblings(), function() { 
     values.push($(this).text()); 
    }); 

    alert(values.join(" ")); 

}); 

资源:

的jsfiddle:

DEMO

+2

为什么要为他编码? –

+0

@doppel我觉得这样做;) – martynas

+0

downvoters:请提供反馈 – martynas

-3
$(document).on("click", "td.option", function() 
{ 
    var second = $(this).prev(); 
    var first = second.prev(); 
    alert("First: "+first.text()+", Second: "+second.text()); 
}); 

EDIt:我的解决方案有什么不好?

3

你可能更适合自己学习这些东西,因为每次遇到问题时都无法在这里请求代码。我建议你去这里学习jQuery:http://www.w3schools.com/jquery/default.asp,更具体地说,你的任务,单击事件:http://api.jquery.com/click/siblings功能,让你找到一个给定的元素的兄弟姐妹:https://api.jquery.com/siblings/

+1

你可以说兄弟姐妹的功能对我来说已经足够了。我不明白你为什么都这么符文 – LynAs

+0

@LynAs我很抱歉,如果它看起来像我粗鲁,但我只是想教你使用互联网上存在的大量参考和教程,其中大部分时间会很快解决你的问题。这是今天成为程序员的重要组成部分,如果您知道如何在参考文献中阅读和搜索解决方案,您将能够自己解决大部分问题。 – UnTraDe

+0

就像我说过的,我试图找到自己的解决方案无法得到结果,所以我发布了问题。而且我提到了代码'或算法'为什么你卡在代码部分。谢谢你的回答 – LynAs

0

试试这个..

<table> 
<tr><td class="approve">1</td><td class="approve">2</td><td class="test" onclick="return get(this)">3</td></tr> 
<tr><td class="approve">4</td><td class="approve">5</td><td class="test" onclick="return get(this)">6</td></tr> 
<tr><td class="approve">7</td><td class="approve">8</td><td class="test" onclick="return get(this)">9</td></tr> 
</table> 



    function get(thID) { 
var sVal = "" 
      $(thID).parent().find('td.approve').each(function() { 

       sVal = sVal + " " + $(this).html(); 

      }); 
     alert(sVal) 

     } 
+0

ohhhhhh为什么要使用内联JS? –

+0

哦,我只是想表现出最简单的版本,因为他对jquery不太了解。可能是错误的方法... – social