javascript - Html 类事件监听器无法正常工作

标签 javascript jquery html class

我有一个名为“banner_category”的类,其多个 id 如下

  <div class="row">
            <div class="col-md-3">
                <div class="banner_item align-items-center" id="cat1" style="background-image:url(images/bolts.jpg)">
                    <div class="banner_category">
                        <a href="#">Bolts</a>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="banner_item align-items-center" id="cat2" style="background-image:url(images/abrasives.jpg)">
                    <div class="banner_category">
                        <a href="#">Abrasives</a>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="banner_item align-items-center" id="cat3" style="background-image:url(images/valves.jpg)">
                    <div class="banner_category">
                        <a href="#">Valves</a>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="banner_item align-items-center" id="cat4" style="background-image:url(images/electrical.jpg)">
                    <div class="banner_category">
                        <a href="#>other</a>
                    </div>
                </div>
            </div>
        </div>

我想要做的是,当我单击每个横幅时,我想要获取横幅文本。例如,当我单击 id=cat4 时,它应该 console.log“other”,id=cat1 应该 console.log“bolts” 我知道如何通过 ids 设置事件监听器,我想做的是设置一个函数而不是四个函数,所以我尝试了这个

$(".banner_category").on("click", function(){
    var clickedcat = document.getElementById('cat').textContent;
    console.log(clickedcat);
})

但无论我单击哪一个,它都只会 console.log bolt 。

如何实现使用一个函数获取每个 Id 的相应文本?

最佳答案

您没有以 cat 作为 id 的元素。 id 没有神奇的自动完成功能 - 您必须命名要定位的 id。

话虽这么说,首先 - 不要混合 jQuery 和纯 js - 其次为什么不直接输出 $(this).text():

$(".banner_category").on("click", function(){
    console.log($(this).text());
    // optional - trim the text: $(this).text().trim()
});

$('.banner_category').on('click', function() {
  console.log($(this).text().trim());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
  <div class="col-md-3">
    <div class="banner_item align-items-center" id="cat1" style="background-image:url(images/bolts.jpg)">
      <div class="banner_category">
        <a href="#">Bolts</a>
      </div>
    </div>
  </div>
  <div class="col-md-3">
    <div class="banner_item align-items-center" id="cat2" style="background-image:url(images/abrasives.jpg)">
      <div class="banner_category">
        <a href="#">Abrasives</a>
      </div>
    </div>
  </div>
  <div class="col-md-3">
    <div class="banner_item align-items-center" id="cat3" style="background-image:url(images/valves.jpg)">
      <div class="banner_category">
        <a href="#">Valves</a>
      </div>
    </div>
  </div>

</div>

关于javascript - Html 类事件监听器无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984891/

相关文章:

javascript - 如何在 Canvas 框上方放置一个 Canvas 框?

javascript - Angular Js ng-disabled 按钮的颜色无论启用还是禁用都保持不变

javascript - 鼠标悬停jquery方法不起作用

jqueryUI 自动完成和数据列表在一起

html - 文章标签和图片

JavaScript 日期.getDay()

使用 AJAX 返回时,JQuery 移动弹出窗口不起作用

javascript - jsPDF 引用错误 : window is not defined

javascript - 在 Javascript Add 函数中出现 NaN 错误

javascript - 如何使用 Javascript 终止无限滚动