Javascript Jquery-如何在表前隐藏h2,在表后隐藏文本?
我在我的网站上工作,我不知道如何在表格前隐藏h2标签,在表格后隐藏文本。你能帮助我吗?非常感谢你的帮助 HTML: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
训练
开始
终点
位置
价格*
)*欧元,不包括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