Возможно ли, чтобы javascript игнорировал определенный раздел c моего html - PullRequest
0 голосов
/ 07 мая 2020

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

Например,

<p>process with javascript</p>
<p>skip, have javascript function ignore</p>
<p>process with javascript</p>

Если есть встроенный тег или что-то, что я ищу . Например,

<p>process with javascript</p>
<script-ignore><p>skip, have javascript function ignore</p></script-ignore>
<p>process with javascript</p>

Ответы [ 3 ]

3 голосов
/ 07 мая 2020

, на мой взгляд, лучший способ использовать not в селекторе

$('p:not(.js-ignore)') // ignore the section by class "js-ignore"
  .css('background','blue') //whatever your code dose
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<p>process with javascript</p>
<p class='js-ignore'>skip, have javascript function ignore</p>
<p>process with javascript</p>

кстати, я считаю, что вы можете сделать что-то вроде этого:

$( "p" ).each(function() {
  if(!$(this).parents('script-ignore').length){
    $(this).css('background','blue')
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<p>process with javascript</p>
<script-ignore><p>skip, have javascript function ignore</p></script-ignore>
<p>process with javascript</p>

Обновление 1

Я понимаю, что вы не упомянули 'jquery', так что это чистая ваниль JS:

var p = document.querySelectorAll('p'); // select

for( i=0; i< p.length; i++ ){
  if(p[i].parentElement.localName !== 'script-ignore'){
    // whatever your code is
  	p[i].style.background = 'red'
  	p[i].style.color = '#fff'
  }
}
<p>process with javascript</p>
<script-ignore><p>skip, have javascript function ignore</p></script-ignore>
<p>process with javascript</p>
2 голосов
/ 07 мая 2020
<p>process with javascript</p>
<p class="dontIncludeJavascriptCall">skip, have javascript function ignore</p>
<p>process with javascript</p>
var ps = document.querySelectorAll("p:not(.dontIncludeJavascriptCall)");
console.log(ps);

Это даст вам только 2 тега P, которые не имеют этого класса

0 голосов
/ 07 мая 2020

Попробуйте поместить имя класса class = "use JS" в свой тег p, который использует JavaScript.

Затем укажите в вашем скрипте только класс .use JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...