jquery从动态创建的表的单元格中获取值null而不是正确的值

时间:2014-09-27 11:55:05

标签: javascript jquery ajax

我想动态更新我的表行,我应该使用jquery来获取表格单元格的值。问题是抓取的值是null而不是" Title"。您可以查看下面的代码并帮我找出错误。我已经研究过并发现我应该使用text()而不是html()但仍然无法得到结果。

$.each(data.results, function(i, res) {                
                var row = $('<tr>').append(
                        $('<td>').html(res.id),
                        $('<td class="title" contenteditable="true">').html(res.title),
                        $('<td>').html('<a href="#" class="update" name="'+res.id+'">Update</a>')                                                               
                    );
                item.append(row); 
            });         
            $("#show").html(item);          
            $("body").on("click", ".update", function() {               
                var self = this;
                var id = $(self).attr("name");
                var title = $(self).closest(".title").text(); //cannot grab the value, 
                ... 

2 个答案:

答案 0 :(得分:1)

我找到了答案。它应该是

var title = $(self).closest('tr').children('td.title').text();

答案 1 :(得分:0)

closest在父元素中查找匹配项,您应该使用siblings代替...

更新

其中一个应该根据您提供的代码工作,如果他们不需要提供生成的HTML或至少提供您使用的完整代码...

$(this).closest('td').siblings('.title').text();
$(this).closest('tr').find('.title').text();
$(this).parent().prev().text();
... and some other methods

$(this).siblings('.title').text()无效的原因是因为this <a><td>没有{{1}}没有兄弟姐妹