Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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-如何在表前隐藏h2,在表后隐藏文本?_Javascript_Jquery_Html - Fatal编程技术网

Javascript Jquery-如何在表前隐藏h2,在表后隐藏文本?

Javascript Jquery-如何在表前隐藏h2,在表后隐藏文本?,javascript,jquery,html,Javascript,Jquery,Html,我在我的网站上工作,我不知道如何在表格前隐藏h2标签,在表格后隐藏文本。你能帮助我吗?非常感谢你的帮助 HTML: 训练 开始 终点 位置 价格* )*欧元,不包括BTW JQuery: <script type="text/javascript"> $(document).ready(function() { // this is code for hiding my table if td is not inside $('.training').each(f

我在我的网站上工作,我不知道如何在表格前隐藏h2标签,在表格后隐藏文本。你能帮助我吗?非常感谢你的帮助

HTML:


训练
开始
终点
位置
价格*
)*欧元,不包括BTW
JQuery:

<script type="text/javascript">
$(document).ready(function() {
    // this is code for hiding my table if td is not inside
    $('.training').each(function(){
       if ($(this).find('td').length == 0){
        $(this).closest('h2').hide(); // I try to hide h2 before table without success
        $(this).hide(); // this works fine
        // I don't know how to hide text after table
       }
    });
});
</script>

$(文档).ready(函数(){
//如果td不在里面,这是隐藏我的表的代码
$('.training')。每个(函数(){
if($(this).find('td')。长度==0){
$(this).closest('h2').hide();//我试图在表之前隐藏h2,但没有成功
$(this.hide();//这很好用
//我不知道如何在表格后隐藏文本
}
});
});

要获取DOM中的前一个元素,可以使用jQuery.prev()

无法选择文本,因为它不是DOM元素。将其包装在p标记中,然后可以使用.next()


示例:

要获取DOM中的前一个元素,可以使用jQuery.prev()

无法选择文本,因为它不是DOM元素。将其包装在p标记中,然后可以使用.next()

示例:

试试这个

$('.training').closest( 'h2' ).hide(); // will hide closest h2 tag, but could be after
$('.training').next().hide(); // will hide element directly after .training
您应该尝试添加特定于您尝试执行的操作的类,而不是依赖dom元素

$('.training').closest( 'h2' ).hide(); // will hide closest h2 tag, but could be after
$('.training').next().hide(); // will hide element directly after .training

您应该尝试添加特定于您正在尝试执行的操作的类,而不是依赖dom元素

如果您可以使用
span
div
来包装
#文本
,那么就很容易了。然后可以使用
.prev
.next
选择表格前后的元素

在这种情况下,如果您无权访问标记。。那么唯一的方法就是获取内容,查找文本并将其删除

请参见下面的演示。。它不会显示任何内容。。因为OP的输出是删除/隐藏所有内容。:)

注意:下面的代码删除表后的下一个文本节点。。因此,请正确测试并根据需要进行更改

$('.training')。每个(函数(){
$(this).prev('h2').remove();//删除或隐藏h2
var tableSiblings=$(this.parent().contents();
var deleteNext=false;
$.each(表标签、函数(i、内容){
如果(删除下一步){
$(this.remove();
deleteNext=false;
}
if($(this).hasClass('training')){
deleteNext=true;
}
});
});

训练
开始
终点
位置
价格*

)*欧元(不含欧元)
如果你能用
span
div
包装
#文本
,那就很容易了。然后可以使用
.prev
.next
选择表格前后的元素

在这种情况下,如果您无权访问标记。。那么唯一的方法就是获取内容,查找文本并将其删除

请参见下面的演示。。它不会显示任何内容。。因为OP的输出是删除/隐藏所有内容。:)

注意:下面的代码删除表后的下一个文本节点。。因此,请正确测试并根据需要进行更改

$('.training')。每个(函数(){
$(this).prev('h2').remove();//删除或隐藏h2
var tableSiblings=$(this.parent().contents();
var deleteNext=false;
$.each(表标签、函数(i、内容){
如果(删除下一步){
$(this.remove();
deleteNext=false;
}
if($(this).hasClass('training')){
deleteNext=true;
}
});
});

训练
开始
终点
位置
价格*


)*EUR excl.BTW
从html代码中删除它?Stefan我不知道你的意思?你想隐藏h2标记,但从html代码中删除它如何?@Stefan这只是我代码的一部分:有几个表中包含数据。我只需要在html代码中删除之前和之后带有h2的空表?@Stefan我不知道你的意思?你想隐藏h2标记,但从html代码中删除它怎么样?@Stefan这只是我代码的一部分:有几个表中包含数据。我只需要隐藏前有h2和后有文本的空表。只要你包装它,它就会工作,你应该这样做。这真的取决于h2和文本是否总是在前后直接落下,这就是为什么我说“用p标记包装它,然后你就可以使用.next()”;)@蒂姆:如果他能把它包起来的话,他完全可以把它取下来。。正确的。。不确定他是否有权访问标记。。但这是一个假设。@Vega True,希望opa不是这样谢谢你,我在表格后包装了文本,效果很好。只要你包装它,这就行了,你应该这样做。这真的取决于h2和文本是否总是在前后直接落下,这就是为什么我说“用p标记包装它,然后你就可以使用.next()”;)@蒂姆:如果他能把它包起来的话,他完全可以把它取下来。。正确的。。不确定他是否有权访问标记。。但这是一个假设。@Vega True,希望OPA不是这样谢谢你,我在表格后包装了文本,效果很好。哇,非常感谢你的时间和这段代码。我将文本包装在div标记之间,可以很好地使用.prev()和.next()函数。哇,非常感谢您的时间和这段代码。我将文本包装在div标记之间,可以很好地使用.prev()和.next()函数。
$(this).next().hide();
$('.training').closest( 'h2' ).hide(); // will hide closest h2 tag, but could be after
$('.training').next().hide(); // will hide element directly after .training