删除带有类的父元素

发布于 2024-12-29 11:09:03 字数 1609 浏览 0 评论 0原文

我有以下 html 结构...

  <tr class="table_opening_CL">
    <td>
  <button class="extract_bt">Approve</button>
  <button class="extract_bt">Delete</button><br>
  <input name="featured" class="featured_selector" type="checkbox" />
  Featured<input name="public_selector" class="public_selector" type="checkbox" />
  Public
   </td> 
        <td>25</td> 

        <td>Session</td> 

        <td>Beek</td> 

        <td>dPC7t</td> 
        <td>2012-01-27 23:38:19</td> 
        <td>Abstract</td> 

        </tr>       

现在我将点击事件绑定到 button 与类 extract_bt...

在点击事件上我将一些数据发布到服务器如果响应为真,那么我需要删除带有 table_opening_CL 类的元素 TR 及其内部 HTML。

我警告了 .post$(this).html(); 的值,但它返回 NULL

我们需要在发布之前存储 this 吗?

请帮助我

谢谢。

更新:

这是我使用的代码...

 $(".extract_bt").live('click',function(){
var p_key = $(this).parent().next().next().next().next().text();
var p_id = $(this).parent().next().text();
var fchkd = $(this).parent().find(".featured_selector").prop("checked");
var pchkd = $(this).parent().find(".public_selector").prop("checked");

$.post("url",{PACKAGE_KEY:p_id,FEATURED:fchkd,PUBLIC:pchkd,PACKAGE:p_key},function(data){
  if (data)
  {
  alert($(this).html());
     $(this).parents(".table_opening_CL").remove();
  }
  else 
  {
    alert(data);
  }

  },"json");
});    
});

i have the following html structure ...

  <tr class="table_opening_CL">
    <td>
  <button class="extract_bt">Approve</button>
  <button class="extract_bt">Delete</button><br>
  <input name="featured" class="featured_selector" type="checkbox" />
  Featured<input name="public_selector" class="public_selector" type="checkbox" />
  Public
   </td> 
        <td>25</td> 

        <td>Session</td> 

        <td>Beek</td> 

        <td>dPC7t</td> 
        <td>2012-01-27 23:38:19</td> 
        <td>Abstract</td> 

        </tr>       

Now i am binding a click event to the button with class extract_bt...

on the click event i am posting some data to the server if the responce is true then i need to remove the element TR with class table_opening_CL and its inner HTML too.

i alerted the value of $(this).html(); inside the .post ,but it returns NULL.

does we need to store this before posting ?

please help me

Thank you.

update :

this is the code i used ...

 $(".extract_bt").live('click',function(){
var p_key = $(this).parent().next().next().next().next().text();
var p_id = $(this).parent().next().text();
var fchkd = $(this).parent().find(".featured_selector").prop("checked");
var pchkd = $(this).parent().find(".public_selector").prop("checked");

$.post("url",{PACKAGE_KEY:p_id,FEATURED:fchkd,PUBLIC:pchkd,PACKAGE:p_key},function(data){
  if (data)
  {
  alert($(this).html());
     $(this).parents(".table_opening_CL").remove();
  }
  else 
  {
    alert(data);
  }

  },"json");
});    
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遇见了你 2025-01-05 11:09:03

是的,在 post 成功处理程序中 this 不会指向 DOM 元素,因此 $(this).html() 将不起作用。

我想你正在寻找这样的东西。

$('.extract_bt').click(function(){
   var $btn = $(this);
    $.post("urlOfThePage", {}, function(response){
         //If reponse will be boolean you can just say if(response)
         if(response == true){
            //This will remove the whole tr element including child elements.
            $btn.closest('tr.table_opening_CL').remove();
         }
    }
});

Yes, inside the post success handler this will not point to the DOM element so $(this).html() will not work.

I think you are looking for something like this.

$('.extract_bt').click(function(){
   var $btn = $(this);
    $.post("urlOfThePage", {}, function(response){
         //If reponse will be boolean you can just say if(response)
         if(response == true){
            //This will remove the whole tr element including child elements.
            $btn.closest('tr.table_opening_CL').remove();
         }
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文