Html类事件侦听器无法正常工作

问题描述 投票:0回答:1

我有一个名为“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“其他”,id = cat1应该是console.log“bolt”我知道如何通过id设置事件监听器我想要做的是设置一个函数而不是四个功能所以我试过这个

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

但它只有console.log螺栓,无论我点击哪一个。

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

javascript jquery html class
1个回答
1
投票

你没有cat作为id的元素。对于ids没有神奇的自动完成功能 - 您必须为要定位的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>
© www.soinside.com 2019 - 2024. All rights reserved.