首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在div包装器中获得div的ID。Jquery

如何在div包装器中获得div的ID。Jquery
EN

Stack Overflow用户
提问于 2022-11-23 05:37:34
回答 1查看 43关注 0票数 0

我有一个像这样的div:

代码语言:javascript
复制
<div id="data" class="grid grid-cols-2">
</div>

我有一个函数可以附加到data div中:

代码语言:javascript
复制
function loadStaticBar(data) {
     let pl_name= `bar-${data.title.replace(/\s+/g, '-').toLowerCase()}`
        $('#data').append(`
        <div class="flex flex-col" id="${pl_name}-wrapper">
            <div class="static barchart" id="${pl_name}-plot">

            </div>
        </div>
        `)
}

loadStaticBar(数据)的内容是一个关键和值,它是图表的详细信息:

代码语言:javascript
复制
{id: 453, title: 'Bar Chart Example', select: 'bar-form', xtitle: 'Values', ytitle: 'Date', …}

现在,我正在尝试获取类static的所有ID。我试过:

代码语言:javascript
复制
$('#data').find('.static')

我知道S.fn.init [prevObject: S.fn.init(1)]里面有很多信息。如何获得包含这样的static类的div的I。

代码语言:javascript
复制
ids = [line-plot, bar-plot]
EN

回答 1

Stack Overflow用户

发布于 2022-11-23 05:41:39

对最新问题的答复可以是:

代码语言:javascript
复制
function loadStaticBar(data) {
 let pl_name= `bar-${data.title.replace(/\s+/g, '-').toLowerCase()}`
    $('#data').append(`
    <div class="flex flex-col" id="${pl_name}-wrapper">
        <div class="static barchart" id="${pl_name}-plot">

        </div>
    </div>
    `)
}
const data={id: 453, title: 'Bar Chart Example', select: 'bar-form', xtitle: 'Values', ytitle: 'Date'};

$(function(){
 loadStaticBar(data); // create the divs first !!!
 const ids=$("#data .static").get().map(el=>el.id);
 console.log(ids);
});
代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-3.6.1.min.js"></script>
<div id="data" class="grid grid-cols-2">
</div>

由于您希望接收一个“适当的”数组而不是jQuery对象,所以首先对所选的DOM元素进行.get(),然后使用标准的Array-method对它们进行.map()是有意义的。

顺便说一句,您也可以在不使用jQuery的情况下解决最初发布的问题:

代码语言:javascript
复制
document.addEventListener("DOMContentLoaded", function () {
 const ids=[...document.querySelectorAll("#data .static")].map(el=>el.id);
 console.log(ids);
});
代码语言:javascript
复制
<div id="data" class="grid grid-cols-2">
 <div class="flex flex-col" id="line-wrapper">
  <div class="static linechart" id="line-plot">
  </div>
 </div>
 <div class="flex flex-col" id="bar-wrapper">
  <div class="static barchart" id="bar-plot">
  </div>
 </div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74542216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档