从表中检索特定数据

时间:2011-07-17 20:19:12

标签: javascript jquery html

目标:
通过按“info”链接从“tr”中的第一个“td”检索数据“aaa”。例如,如果从第一个“tr”按下“info”链接,我应该从第一个“tr”中检索数据“aaa”。

问题:

  

通过按下找到解决方案以检索数据“aaa”时遇到问题   使用javascript和jquery链接“info”。换句话说,怎么样   通过jquery和javascript检索数据

请记住,我还需要将值aaa转换为与业务逻辑相关的其他方法。

另一件事,列表中的行数可以每天更改。


   <table border="1" SUMMARY="aaa" id="tblProjekt">
    <thead>
        <tr>
            <th>Projekt name</th>
            <th>Total time</th>
            <th>Task</th>
            <th>comments</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>aaa</td>
            <td>aaa</td>
            <td>aaa</td>
            <td><a href='#' onclick='startPoint(); return false;'>info</a></td>
        </tr>
        <tr>
            <td>bbb</td>
            <td>bbb</td>
            <td>bbb</td>
            <td><a href='#' onclick='startPoint(); return false;'>info</a></td>
        </tr>
        <tr>
            <td>bbb</td>
            <td>bbb</td>
            <td>bbb</td>
            <td><a href='#' onclick='startPoint(); return false;'>info</a></td>
        </tr>      
    </tbody>

</table>

4 个答案:

答案 0 :(得分:0)

你的问题对我来说并不清楚,但是后面的小提琴达到了问题中指定的目标,即检索aaa

$("a:contains('info')").click(function(){

var v = $("#tblProjekt >tbody> tr:first>td").html();
alert(v);
});

http://jsfiddle.net/JKByC/1/

修改

更新的html

$("a").click(function(){

    var v = $(this).closest("tr").children(':first-child').text();
    alert(v);

});

这里是小提琴http://jsfiddle.net/sDZ7q/

答案 1 :(得分:0)

我同意3nigma这个问题不明确。如果您希望链接显示在每一行并在单击后显示第一个单元格的内容,以下是解决方案(see jsfiddle):

jQuery('#tblProjekt').delegate('a.startPoint', 'click', function(event){
    event.preventDefault();
    var info = jQuery(this).parents('tr').find('td:first-child').html();
    alert(info);
});

这将显示我刚刚描述的警告弹出窗口。它假设您的HTML应如下所示:

<table border="1" SUMMARY="aaa" id="tblProjekt">
    <thead>
        <tr>
            <th>Projekt name</th>
            <th>Total time</th>
            <th>Task</th>
            <th>comments</th>
            <th>(link for more info)</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>aaa1</td>
            <td>aaa2</td>
            <td>aaa3</td>
            <td>aaa4</td>
            <td><a href="#" class="startPoint">info</a></td>
        </tr>
        <tr>
            <td>bbb1</td>
            <td>bbb2</td>
            <td>bbb3</td>
            <td>bbb4</td>
            <td><a href="#" class="startPoint">info</a></td>
        </tr>  
    </tbody>
</table>

有帮助吗?这是你需要的吗?

聚苯乙烯。我从您的代码中删除了内联JavaScript。尽可能避免这种情况。

答案 2 :(得分:0)

是的,我也不清楚这个请求。但是我想你可能会想要这样的东西(开始你的路上......)

$('#oneColumnInfo').click(function(){
    var oneColumnText = $('tbody tr td:first').text();
    alert(oneColumnText);
    return false;
});

$('#twoColumnInfo').click(function(){
    var twoColumnText = $('tbody tr td:first').next().text();
    alert(twoColumnText);
    return false;
});

http://jsfiddle.net/jasongennaro/eaSMS/

顺便说一句,我删除了内联click events

<table border="1" SUMMARY="aaa" id="tblProjekt">
    <thead>
        <tr>
            <th>Projekt name</th>
            <th>Total time</th>
            <th>Task</th>
            <th>comments</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>aaa</td>
            <td>abc</td>
            <td>aaa</td>
            <td>aaa</td>
        </tr>
        <tr>
            <td>bbb</td>
            <td>bbb</td>
            <td>bbb</td>
            <td>bbb</td>
        </tr>      
        <tr>
            <td><a href='#' id="oneColumnInfo">info</a></td>
            <td><a href='#' id="twoColumnInfo">info</a></td>
            <td><a href='#'>info</a></td>
            <td><a href='#'>info</a></td>
        </tr>       
    </tbody>

</table>

答案 3 :(得分:0)

鉴于问题中修改了html,我建议使用:

$('td a').click(
    function(){
        var projektName = $(this).closest('tr').find('td:first').text();
        alert(projektName);
        return false;
    });

JS Fiddle demo

<小时/> 参考文献: