Javascript, как увидеть, если "$ this" содержит определенный идентификатор - PullRequest
0 голосов
/ 12 октября 2018

Я хочу проверить, содержит ли объект, на который пользователь нажимает на веб-странице, определенный идентификатор.

Я пробовал .include, .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 голосов
/ 12 октября 2018

Имеет атрибут для определения наличия у элемента определенного типа атрибута, например name, class или id.не для выяснения содержимого атрибута, который когда-либо может быть.

Просто возьмите имя атрибута 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>
0 голосов
/ 12 октября 2018

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:

0 голосов
/ 12 октября 2018

Вы можете использовать .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>
...