Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.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
Jquery 如果tbody有多个子元素,请添加show element1_Jquery_Css - Fatal编程技术网

Jquery 如果tbody有多个子元素,请添加show element1

Jquery 如果tbody有多个子元素,请添加show element1,jquery,css,Jquery,Css,如果另一个div有多个子元素,我就无法显示一个thiw的内容 结构如下: <div class="element1"></div> <tbody> <tr></tr> </tbody> .element1 { display: none; } .要素1{ 显示:无; } 所以,如果tbody只有一个子元素,那么display.element1 我用css3做了很多尝试,但都没能完成 多谢各位 if ($('t

如果另一个div有多个子元素,我就无法显示一个thiw的内容

结构如下:

<div class="element1"></div>
<tbody>
  <tr></tr>
</tbody>

.element1 {
  display: none;
}

.要素1{
显示:无;
}
所以,如果tbody只有一个子元素,那么display.element1

我用css3做了很多尝试,但都没能完成

多谢各位

if ($('tbody tr').length > 1) {
    $('.element1').show();
}
但@T.J.克劳德的评论是正确的

我希望有帮助

但@T.J.克劳德的评论是正确的

我希望有帮助

所以,如果tbody只有一个子元素,那么display.element1

我将假设下半部分是“……否则就隐藏它。”

您可以这样做:

$(".element1").toggle($("selector-for-the-table tbody").children().length === 1);
当表的内容可能已更改时,您需要触发该代码。您可以在任何现代浏览器上使用。在稍微不太现代的浏览器上,您可以找到一个polyfill/shim,它使用旧的不推荐的突变事件模拟足够多的突变观察者。在非常旧的浏览器上,您必须进行轮询

下面是一个突变观察者观察
tbody
变化的例子:

// Watch for changes
var ob = new MutationObserver(function() {
  // A change may have occurred
});
ob.observe($("selector-for-the-table tbody")[0], {
  childList: true,
  subtree: true
});
现场示例:

//执行更新的函数
函数updateElement1(){
$(“.element1”).toggle($(“#表体”).children().length==1);
}
//初始呼叫
updateElement1();
//留意变化
var ob=新的变异观察者(updateElement1);
观察($(“#表格正文”)[0]{
儿童名单:是的,
子树:真
});
//每秒更改一次,持续10秒
var计数器=0;
var timer=setInterval(函数(){
var tbody=$(“#表tbody”);
if(tbody.children().length==1){
//加一
tbody.append(“第二行添加”+新日期().toISOString()+”);
}否则{
//移除一个
t body.children().last().remove();
}
如果(++计数器>=10){
清除间隔(计时器);
$(“”).html(“完成”).appendTo(document.body);
}
}, 1000);
我是元素1
第一排
所以,如果tbody只有一个子元素,那么display.element1

我将假设下半部分是“……否则就隐藏它。”

您可以这样做:

$(".element1").toggle($("selector-for-the-table tbody").children().length === 1);
当表的内容可能已更改时,您需要触发该代码。您可以在任何现代浏览器上使用。在稍微不太现代的浏览器上,您可以找到一个polyfill/shim,它使用旧的不推荐的突变事件模拟足够多的突变观察者。在非常旧的浏览器上,您必须进行轮询

下面是一个突变观察者观察
tbody
变化的例子:

// Watch for changes
var ob = new MutationObserver(function() {
  // A change may have occurred
});
ob.observe($("selector-for-the-table tbody")[0], {
  childList: true,
  subtree: true
});
现场示例:

//执行更新的函数
函数updateElement1(){
$(“.element1”).toggle($(“#表体”).children().length==1);
}
//初始呼叫
updateElement1();
//留意变化
var ob=新的变异观察者(updateElement1);
观察($(“#表格正文”)[0]{
儿童名单:是的,
子树:真
});
//每秒更改一次,持续10秒
var计数器=0;
var timer=setInterval(函数(){
var tbody=$(“#表tbody”);
if(tbody.children().length==1){
//加一
tbody.append(“第二行添加”+新日期().toISOString()+”);
}否则{
//移除一个
t body.children().last().remove();
}
如果(++计数器>=10){
清除间隔(计时器);
$(“”).html(“完成”).appendTo(document.body);
}
}, 1000);
我是元素1
第一排

告诉我们,您尝试了什么?该HTML无效。如果它在
元素中,则那里不能有
div
。如果不是,那么,
tbody
table
之外是无效的。有table标记,我只是想解释得更简单一些。告诉我们,您尝试了什么?HTML无效。如果它在
元素中,则那里不能有
div
。如果不是,那么,
tbody
table
之外是无效的。有table标记,我只是想解释得更简单一些。因为OP要求用CSS3做他想要的事情,为了清楚起见,我还想添加这个“条件”纯CSS的行为是不可能的,需要涉及Javascript代码。@Christina,op还添加了有问题的jquery标记,因此可能TJ是对的。@Christina,你是对的,但op在标记中添加了jquery,表示他愿意接受您的答案jquery@T.J.Crowder非常感谢您的快速和教育性回应。我还有一个问题。也许我犯了一个错误,因为我只写了“element1”,因为它实际上看起来是这样的:schema.org/Offer“>我如何选择那个元素?@momcilopov:注意,那个是无效的HTML;
div
元素没有那个些属性。(它们可以工作,但它是无效的。)您可以改为使用。但是您可以使用
itemprop
属性选择
div
,并使用:
$(“div[itemprop=offers]”)选择值为“offers”的
div
“纯CSS的行为是不可能的,需要涉及Javascript代码。@Christina,op还添加了有问题的jquery标记,因此可能TJ是对的。@Christina,你是对的,但op在标记中添加了jquery,表示他愿意接受有问题的答案jquery@T.J.Crowder非常感谢您的快速和教育性回应。我还有一个问题。也许我犯了一个错误,因为我只写了“element1”,因为它实际上看起来是这样的:schema.org/Offer“>我如何选择那个元素?@momcilopov:注意,那个是无效的HTML;
div
元素没有那个些属性。(它们可以工作,但它是无效的。)您可以改为使用。但是您可以使用
itemprop
属性选择
div
,该属性的值为“offers”,使用:
$(“div[itemprop=offers]”
)。