2012-03-01 205 views
0

我正在學習jquery並且正在使用jsfiddle。首先,我已經觀看了關於pluralsight和AppendTo的基本視頻。從特定列獲取值列表

如果你看看這個http://jsfiddle.net/bmNKU/7/,我試圖從一個特定的列(在本例中是一個電子郵件ID列表)中獲取值的列表。

我已經設法得到循環,但它顯示所有行和列的值...我想要的最終輸出是來自EmailID列的所有行中的所有電子郵件ID的列表。即abc @ gmail.com,xyz @ gmail.com等......可以有任意數量的行。

回答

1

下面是一個創建使用的標記一個新的無序列表的一個版本。應該使用TD,而不是個

http://jsfiddle.net/bmNKU/14/

$(document).ready(function() { 
    /* add a new ul to put emails into*/ 
    $('body').append('<ul id="list"></ul>');  

    $("#btn").click(function() { 
          /* start an html string*/ 
     var html = ''; 
     /* loop over table*/ 
     $('tr:gt(0)').each(function() { 
      var email = $(this).find('th').eq(1).text(); 
      /* concatenate each new element to html string */ 
      html += '<li>' + email + '</li>'; 
     }) 

     /* add new html to DOM*/ 
     $('#list').html(html); 

    }); 
}); 
+0

非常感謝。這是很好的學習經驗。我還有一個問題。對於一些選擇器,我們把空格(例如$(#mytable tr))和一些我們把:例如($('tr:gt(0)'))我怎麼知道什麼時候使用SPACE和:? – NoobDeveloper 2012-03-02 02:07:15

+0

抱歉,不瞭解空間問題 – charlietfl 2012-03-03 04:29:27

1

首先,您應該只在標題行(具有'ID','電子郵件'的行)上使用th,並在包含數據的行上使用td。然後你可以選擇'#mytable td',這將跳過標題列。其次,如果你使用一個類來標記你的列,它會容易得多。這裏有一個例子:

HTML:

<table id='mytable' border='1'> 
    <tr> 
     <th>ID</th> 
     <th>Email</th> 
    </tr> 
    <tr> 
     <td class='ID'>1</td> 
     <td class='Email'>[email protected]</td> 
    </tr> 
    <tr> 
     <td class='ID'>2</td> 
     <td class='Email'>[email protected]</td> 
    </tr> 
</table> 

然後使用Javascript:

$(document).ready(function() { 
    $('#btn').click(function() { 
     $('#mytable td.Email').each(function() { 
      alert($(this).html()); 
     }); 
    }); 
}); 
+0

感謝。你和@charlietfl的例子都給了我很多幫助。 – NoobDeveloper 2012-03-02 02:07:43

0

首先,讓我們清理標記位。其次,考慮這個版本的小提琴找到所有的ID和電子郵件,並將它們添加到一個數組中,您可以通過單擊該按鈕來完成您需要的操作(在本例中輸出爲div):http://jsfiddle.net/bmNKU/10/

0

首先,你的html表格應該被調整。 「th」用於表示表格列標題,而不是值。應該在這裏使用「td」。

接下來,通過爲每個「td」指定一個類,可以很容易地通過jquery引用它們。

Here's a working example.