Javascript如何查看“ $ this”是否包含特定ID

时间:2018-10-12 02:24:05

标签: javascript this

我要检查用户在网页中单击的对象是否包含特定ID。

我尝试了.includes,.contains,.hasOwnProperty('val')和其他一些方法,但是没有运气。

如果该对象包含#demo-id-name,则应触发其下面的代码。

所以我在代码中有了这个,我想这样做,以便如果用户单击第一个

标记,我想使用javascript检查被单击的对象是否具有“# demo-id-name”。

jQuery(document).ready(function($) {
  "use strict";
  $(".demo-class").on("click",
    function(event) {
      var $this = $(this);
      if ($this.hasAttribute('#demo-id-name')) {

        /// redacted for brevity etc etc
        clickSpark.fireParticles($(this));
      }
    }):
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<p class="demo-class" id="demo-id-name">something </p>
<p class="demo-class">something ELSE </p>

3 个答案:

答案 0 :(得分:2)

您可以使用.matches来检查元素是否与特定选择器匹配,而无需先将this转换为jQuery集合:

$(".demo-class").on("click", function() {
  if (this.matches('#demo-id-name')) console.log('match');
  else console.log('no match');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="demo-class" id="demo-id-name">something </p>
<p class="demo-class">something ELSE </p>

这不是必需的,但是如果您想先将this包装在jQuery中,则可以使用is方法:

$(".demo-class").on("click", function() {
  if ($(this).is('#demo-id-name')) console.log('match');
  else console.log('no match');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="demo-class" id="demo-id-name">something </p>
<p class="demo-class">something ELSE </p>

答案 1 :(得分:1)

具有属性用于检测元素是否具有特定的属性类型,例如nameclassid。不是为了弄清楚某个属性的内容。

只需简单地获取元素id属性的名称,然后在if语句中测试它是否与您要查找的内容相匹配。

还有关于您使用event的旁注。因为您没有在函数中使用事件,所以不需要。

jQuery(document).ready(function($) {
  "use strict";

  $(".demo-class").on("click", function() {
    var $this = $(this),
      name = $this.attr('id');
    if (name === 'demo-id-name') {
      alert('WOOOOOO');
    }
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>


<p class="demo-class" id="demo-id-name">something </p>
<p class="demo-class">something ELSE </p>

答案 2 :(得分:1)

JS代码:

 $(".demo-class").on("click",
    function(event) {
      if (this.id.match('demo-id-name')){
                    console.log('ID is matched');
            }
    else {
       console.log('Id is not matched');
    }
            });


<p class="demo-class" id="demo-id-name">something </p>
<p class="demo-class">something ELSE </p>

JSFiddle: