【问题标题】:Add new div / element by jquery but there is no ID / class div parent通过 jquery 添加新的 div / 元素但没有 ID / 类 div 父级
【发布时间】:2014-09-18 00:22:59
【问题描述】:

我在用 jquery 添加新的 div 元素时遇到了一些问题,但是 div 父级中没有 id / clas。

例如,我想在<img> 之前添加新的 div 元素,这个 img 没有 id/class,也是 div 父级。

我的问题是,如何用 jquery 创建这样的东西?

谢谢大家:)

【问题讨论】:

  • 那么在 HTML 中添加一个类或 id...?您可以通过文档中的索引或序号位置找到 div,但这不是很健壮并且很容易被破坏。
  • 问题是 div 元素来自第三方。我使用 mylivechat 显示小部件 div,我想强制在其中添加一些 elemet 小部件 div
  • 在这种情况下,将其包装在具有类或 id 的包含 div 中,并从那里遍历 DOM 以找到您需要的元素。它仍然不够健壮,因为如果 3rd 方插件的 HTML 发生更改,它会被破坏,但至少您所做的更改不会破坏它。
  • 你可以使用var img = $('.inpagebase').next().find('img')或者$('.inpagebase').next().prepend(newDiv),但是谁知道呢:说不定它们之间会出现div,代码就会崩溃。

标签: javascript jquery


【解决方案1】:

如果您没有像 id 这样的唯一标识符,您还可以使用其他选择器方法。您可以使用兄弟选择器或遍历 DOM。如果标记是一致的,你可以这样做

$('.inpagebase + div img').before(nodeToInject);

这只是一种方法。我会使用 jQuery 或 CSS 同级选择器来研究 DOM 遍历。

【讨论】:

    【解决方案2】:

    您可以使用第 n 个子选择器来附加 div。

    根据示例图像,您正尝试在正文的第二个 div 中附加新 div。

    <script>
     $(function(){
       $( "body div:nth-child(2)" ).append( "<div> your content </div>" );
     });
    </script>
    

    这会将新的 div 放置在 body 标记的第二个 div 中。 find jquery documentation here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2011-06-05
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多