【问题标题】:get outer div by id, then get inner div by class通过 id 获取外部 div,然后通过类获取内部 div
【发布时间】:2012-05-25 17:18:27
【问题描述】:

首先我想按 id 获取外部 div,然后按类获取内部 div(由 jquery mobile ui-collapsible 内容动态添加),最后附加一个子文本节点。

<div id="aab" data-role="collapsible" data-content-theme="c">
     <h3>Heading</h3>
     <div class="ui-collapsible-content">
         <div id="coll">
             Collapsible Content
         </div>
     </div>
     </div>
     <p><button onclick='func()'>Button</button></p>    

   <script>
        function func() {
            var section = $("#aab > .ui-collapsible-content"); 
            section.appendChild(document.createTextNode("Hello world!"));
        }
    </script>

我也尝试了 document.getElementById 但不知何故它不起作用..提前致谢!

【问题讨论】:

  • 我没有看到任何具有 ui-collapsible-content 类的元素。顺便说一句,你知道&gt; 表示直接孩子吗?
  • @zerkms: div "coll" 将自动包装在一个带有 ui-collapsible-content 类的 div 中。我也试过 alert($("#aab > .ui-collapsible-content").text());我得到了可折叠内容作为警报,因此它适用于文本子项,但我想要带有 ui-collapsible-content 类的包装 div,它将自动添加并包装 div id="coll"。
  • @user1054134: 所以请把 html 显示为包装好的,这样我们就不需要做任何假设了
  • 添加了可折叠的内容div
  • 现在定义问题中的“不起作用”是什么意思?选择器不错

标签: javascript html jquery-mobile


【解决方案1】:

你已经使用 jquery 进行选择,所以你应该使用它来添加孩子

function func() {
  var section = $("#aab > .ui-collapsible-content"); 
  section.append("Hello world!");
}

【讨论】:

  • 谢谢,成功了!什么是“document.appendChild”或 document.createTextNode 表示法?那不是javascript吗?
  • @user1054134:你从哪里弄来的?
  • 它是纯 javascript,但您只能在使用 docuemtn.getElementById() 选择元素时调用 appendChild ...但在这种情况下,您已经拥有 jQuery,比纯 js 更容易编写。你仍然可以使用像这样的纯代码 section.get(0).appendChild ...
  • 感谢您的评论!但如果所有其他内容都被注释掉,我什至无法让它工作: var b = document.getElementById("#coll").text();警报(b);但是这个 jquery 东西有效: var b = $("#coll").text();警报(b);也许我必须在 window.onload 函数中加载它..
  • noooo # 仅用于 jsuery id 选择。纯 js 没有 b = document.getElementById("coll") 可以工作
猜你喜欢
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
相关资源
最近更新 更多