1

我正在尝试通过使用 jquery 的 .eq() 函数来访问 div 的子元素,但它看起来有问题,尽管事实上没有引发错误,看起来就像我对所需的子 div 元素执行 .innerHTML 时一样,没发生什么事。

这是我的 HTML:

<div id="status_container">
    <div class="status_item_wrapper">
        <div class="status_item_title">
            <span>TITLE 1</span>
        </div>
        <div class="status_item_content">
            <table id="box-table"></table>
        </div>
    </div>
    <div class="status_item_wrapper">
        <div class="status_item_title">
            <span>TITLE 2</span>
        </div>
        <div class="status_item_content">
            <table id="box-table"></table>
        </div>
    </div>
</div>

这是我的javascript:

function doSomething(message) {
     var data = message.data;
     var index_container = 0;

     var container = $("#status_container").eq(0);
     var content_wrapper = container.eq(1); // this would be the content div of each child
     content_wrapper.html(JSON.stringify(data));
}

我认为这将获得“TITLE 1”status_item_wrapper div,然后,content_wrapper 将包含“status_item_content”对象。

我应该如何从第一个父级“status_container”到达“status_item_content”div?

谢谢。

4

1 回答 1

2

content_wrapper是一个 jQuery 对象,因为它是eq()返回的,并且没有innerHTML方法,你应该使用 jQuery 的html()

content_wrapper.html( JSON.stringify(data) );

要改为返回本机 DOM 元素,您可以使用get(), 并执行以下操作:

var content_wrapper = container.get(1);
content_wrapper.innerHTML = JSON.stringify(data);

编辑:

既然你已经添加了container,有一些问题。eq()将基于从零开始的索引在元素集合中获取某个元素,并且您使用 ID 作为选择器,因此实际上不应该存在集合,因为 ID 是唯一的,并且应该只选择一个元素.

如果你试图选择#status_container元素内的第二个孩子,你会做

 var content_wrapper = $("#status_container").children().eq(1);
于 2013-05-14T15:25:55.273 回答