Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery检查另一个元素/标记中是否没有元素/标记_Javascript_Jquery_Html Table - Fatal编程技术网

Javascript 如何使用jQuery检查另一个元素/标记中是否没有元素/标记

Javascript 如何使用jQuery检查另一个元素/标记中是否没有元素/标记,javascript,jquery,html-table,Javascript,Jquery,Html Table,我已经搜索了整个堆栈溢出站点,但我可以找到答案 当中不再有时,下面的代码不会显示任何警报,这是为什么 我相信下面的方法应该有效,但什么也没有发生: <script> $('td > a').click(function(e){ var this_elem = $(this); if( this_elem.hasClass("remove") ){ this_elem.parent().parent().remove(); } return fal

我已经搜索了整个堆栈溢出站点,但我可以找到答案

中不再有
时,下面的代码不会显示任何警报,这是为什么

我相信下面的方法应该有效,但什么也没有发生:

<script>
  $('td > a').click(function(e){
  var this_elem = $(this);

  if( this_elem.hasClass("remove") ){
    this_elem.parent().parent().remove();
  }

  return false;

 });

 if( $("tbody > tr").length === 0 ){

  alert("No more rows of products...");

 }
</script>

$('td>a')。单击(函数(e){
变量this_elem=$(this);
如果(本要素已分类(“删除”)){
此元素为parent().parent().remove();
}
返回false;
});
如果($((“tbody>tr”)。长度===0){
警报(“不再有产品行…”);
}
HTML:


三星LE40C580J1 LCD HD 1080p数字电视,40英寸内置Freeview HD,三星LE40C580J1 LCD HD 1080p数字电视,40英寸内置Freeview HD
产品代码:1254782

库存


因为您没有计算下一行,所以您正在计算页面中所有
表中
正文中的所有行

鉴于问题中添加的其他细节,我向您提供以下信息:

$('a.remove').click(

function() {
    $(this).closest('tr').remove(); // a slightly more concise form of your own code
    return false;
});

$('table tbody').bind('DOMNodeRemoved', function() {
    var c = $('table tbody tr').length;
    if (c === 1) { // testing against '1' because the count is performed before
                   // the row is actually removed from the DOM.
        alert("The final row is about to go.");
    }
});

.

因为您没有计算下一行,所以您正在计算页面中所有
表的
正文中的所有行

鉴于问题中添加的其他细节,我向您提供以下信息:

$('a.remove').click(

function() {
    $(this).closest('tr').remove(); // a slightly more concise form of your own code
    return false;
});

$('table tbody').bind('DOMNodeRemoved', function() {
    var c = $('table tbody tr').length;
    if (c === 1) { // testing against '1' because the count is performed before
                   // the row is actually removed from the DOM.
        alert("The final row is about to go.");
    }
});

.

页面中只有一个表吗?否则,您将计算页面中所有表中的所有行

要以这种方式计算行数,您可以在此处查看我的测试:

编辑: 当您发布代码时,我看到您仅在页面加载时检查行数。每次删除一行时都应检查该行:

$('td > a').click(function(e){
  var this_elem = $(this);
  if( this_elem.hasClass("remove") ){
    this_elem.parent().parent().remove();

    if( $("tbody > tr").length === 0 ){
      alert("No more rows of products...");
    }

  }
  return false;
});

页面中只有一个表吗?否则,您将计算页面中所有表中的所有行

要以这种方式计算行数,您可以在此处查看我的测试:

编辑: 当您发布代码时,我看到您仅在页面加载时检查行数。每次删除一行时都应检查该行:

$('td > a').click(function(e){
  var this_elem = $(this);
  if( this_elem.hasClass("remove") ){
    this_elem.parent().parent().remove();

    if( $("tbody > tr").length === 0 ){
      alert("No more rows of products...");
    }

  }
  return false;
});

您没有为我们提供太多信息,但我的第一个猜测是,您的JQuery选择器在页面上的任何表中查找行。如果页面中有任何其他表,这些行也可能被计数。您需要做的是使JQuery选择器更加具体。例如:

if( $(" #myTableName > tbody > tr").length === 0 ){
    alert("No more rows of products...");
}

请注意,我已经向选择器添加了一个ID。这告诉JQuery只在ID为“
myTableName
”的表中查找行

您没有为我们提供太多信息,但我的第一个猜测是,JQuery选择器在页面上的任何表中查找行。如果页面中有任何其他表,这些行也可能被计数。您需要做的是使JQuery选择器更加具体。例如:

if( $(" #myTableName > tbody > tr").length === 0 ){
    alert("No more rows of products...");
}

请注意,我已经向选择器添加了一个ID。这告诉JQuery只查找ID为“
myTableName
”的表中的行。

也许您应该考虑使用
nextAll


也许你应该研究下一步的使用



是的,页面上只有一个表。@Shaoz:问题不是代码不起作用,问题是您只运行了一次。您应该在删除行后进行检查。请参阅上面我的编辑。是的,页面上只有一个表。@Shaoz:问题不是代码不起作用,问题是您只运行了一次。您应该在删除行后进行检查。请看我上面的编辑。@David Thomas:页面上只有一个表格。但我只想在tbody为空时提醒用户…@Shaoz,您是删除
tr
s还是出于某种原因只是对它们进行迭代?如果您编辑您的问题以添加相关详细信息,那么我想我们可以提供帮助。=)@大卫·托马斯:我正在用一个“删除”链接/按钮删除每个
tr
。然后,当不再有
tr
时,会出现一个警报框,通知不再有
tr
。注意:我刚刚用更多信息更新了这个问题。@shaoz,请检查编辑,我认为它应该是你想要的,尽管它只在Ubuntu10.10上的Chrome8.x上测试过。@David Thomas:是的,它可以工作。非常感谢你,大卫。。。问题是我在错误的时间进行检查。。。有趣的。。。但是非常感谢。@David Thomas:页面上只有一张桌子。但我只想在tbody为空时提醒用户…@Shaoz,您是删除
tr
s还是出于某种原因只是对它们进行迭代?如果您编辑您的问题以添加相关详细信息,那么我想我们可以提供帮助。=)@大卫·托马斯:我正在用一个“删除”链接/按钮删除每个
tr
。然后,当不再有
tr
时,会出现一个警报框,通知不再有
tr
。注意:我刚刚用更多信息更新了这个问题。@shaoz,请检查编辑,我认为它应该是你想要的,尽管它只在Ubuntu10.10上的Chrome8.x上测试过。@David Thomas:是的,它可以工作。非常感谢你,大卫。。。问题是我在错误的时间进行检查。。。有趣的。。。但是非常感谢。忘了提到页面上只有一张桌子,所以我没有在上面写“id”。所以它应该仍然有效…忘了提到页面上只有一张表,所以我没有在上面写上“id”。所以它应该仍然有效…我想我们需要更多的信息。这个代码从哪里调用?@Karl Nicoll:它在
内部调用。我也更新了问题。我想我们需要更多的信息。这个代码从哪里调用?@Karl Nicoll:它在
内部调用。我也更新了问题。