首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript -单击给定类后显示具有给定类的div

Javascript -单击给定类后显示具有给定类的div
EN

Stack Overflow用户
提问于 2022-02-07 10:10:19
回答 3查看 98关注 0票数 0

几个有特定类的跨度。

代码语言:javascript
复制
<span class="1 click-1">1</span>
<span class="2 click-2">2</span>
<span class="3 click-3">4</span>
<span class="4 click-4">4</span>

单击给定的<span>将显示包含相同类的DIV。该怎么做呢?

代码语言:javascript
复制
<div class="click-1">Hello!</div>
<div class="click-2">Hello 2!</div>
<div class="click-3">Hello 3!</div>
<div class="click-4">Hello 4!</div>

我需要这样的解决方案,因为它是在CMS方面的开发。用户可以添加更多的span和div。所以剧本必须是通用的。

EN

回答 3

Stack Overflow用户

发布于 2022-02-07 10:32:59

找这样的东西?

代码语言:javascript
复制
document.querySelectorAll("span").forEach(e => {
  e.onclick = () => {                          // on click on span
    const div = document.createElement("div"); // create new div
    div.classList = e.classList;               // copy and reuse class list
    div.innerText = `Hello ${e.innerText}!`;   // set inner text to 'Hello ${}!'
    document.body.append(div);                 // append div to dom
  }
})
代码语言:javascript
复制
span {
  display: block;
}
代码语言:javascript
复制
<span class="1 click-1">1</span>
<span class="2 click-2">2</span>
<span class="3 click-3">4</span>
<span class="4 click-4">4</span>
Clicking on a given <span> displays a DIV that contains the same class. How to do it?

票数 1
EN

Stack Overflow用户

发布于 2022-02-07 11:00:07

由于JQuery是标记的,需要注意的是,只有span的第二个类名才能用于查找下面代码中具有相同类的div。

代码语言:javascript
复制
$(document).on("click","span",function(){// attaching evt listner to all spans
  var getClass = $(this).prop('class').split(' ')[1];//get 2nd classname of span
    $(`div.${getClass}`).show(); // divs with such class
    //or
    $(`.${getClass}`).show(); // anything with such class
});

此代码将使用上面给出的html语法。但是,在一个跨度中只有一个类的情况下,它就不能工作了。因此,相应地修改代码,或者确保第二类span等于要显示的div的类名。

票数 0
EN

Stack Overflow用户

发布于 2022-02-07 10:15:41

代码语言:javascript
复制
var testElements = document.getElementsByClassName('click-1');
var testDivs = Array.prototype.filter.call(testElements, function(testElement){
  return testElement.nodeName === 'DIV';
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71016750

复制
相关文章

相似问题

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