2010-07-09 82 views
1

在我的HTML代码中,我有一个特定的单元格,如果按下链接按钮,它的值应该被清除。我想实现这个使用jQuery和这里就是我试图做到这一点,但没有结果:清除HTML内的单元格值

var $delActionDate = $('#delete_Event'); 

     $delActionDate.live('click', function() { 

      var myRow = $delActionDate.parent().parent(); 
      myRow.find('#dateCell').html() = ""; 

如何做到这一点任何想法?

回答

1

由于卢卡说,更新您使用html("")而非html()="" HTML内容。

在增加,假设你的父母()的东西是正确的根据你的HTML,你需要做这样的选择的行是基于其按下按钮应该是改变:把

var myRow = $delActionDate.parent().parent(); 

var myRow = $(this).parent().parent(); 
+0

如果你想调用.parent()方法,记得从这里创建一个jQuery对象。 var myRow = $(this).parent()。parent(); – Michal 2010-07-09 14:07:06

+0

您的解决方案工作得很好,谢谢JacobM。除了你应该改变这个$(this),否则你不能调用.parent() 我很感谢大家的提示! – Hallaghan 2010-07-09 14:09:47

+0

哎呀 - 好点。编辑修复。 – 2010-07-09 14:53:09

2

你想,myRow.find('#dateCell').html("");

+0

这正是我想要的。这里唯一的问题是,我有多行,无论按什么按钮,它总是第一行的单元格值被清空。我怎样才能把它指向被按下的按钮的单元格值? – Hallaghan 2010-07-09 14:00:21

+0

@Hallaghan - 您是否多次使用ID?这是无效的HTML,会给出各种问题:) – 2010-07-09 14:01:47

+0

事实上,我做错了方式。但我认为你的方法已经在某些方面清除了我的想法。我会试一试并更改我的代码。 – Hallaghan 2010-07-09 14:05:32

1

,因为有多个元素,您应该使用类而不是身份证,然后用.closest().find()来得到你想要的,就像这样:

$('.delete_Event').live('click', function() { 
    $(this).closest('tr').find('.dateCell').empty(); 
}); 

这意味着将您的元素更改为class="delete_Eevent"class="dateCell"而不是id="delete_Event"id="dateCell".closest('tr')爬到<tr>,不管多深,然后.find()下降到日期单元格。然后我们使用.empty()来清除元素。

如果您有任何数据或事件处理程序,这是比.html("")一个更好的方法,因为它不会泄露存储在$.cache的内存,这.empty()清理。