Парсинг класа - js

248
17 января 2019, 02:30

есть вот такой кусочек скрипта, который получает h3 с классом "r"и выводит true/false, но теперь r есть всегда и я хочу сделать так - если один r - это false, если два r - это true. Подскажите, как добавить проверку на наличие одновременно 2-ух классов "r". Буду очень благодарен, хорошего кода всем.

   function isIndexed(page,ignoreCase) {
  var urls=[],RETRIES=5;
  if(!page)return;
  if(page.indexOf("://")!==-1)page=page.split("://")[1].trim();
  var url='https://www.google.com/search?q='+encodeURIComponent(page)+'&fp=1&dpr=2&sns=1&pf=p&tch=1&filter=0';
  if(page.slice(-1)=="/")page=page.slice(0,-1);
  try {
    var serp=UrlFetchApp.fetch(url,{muteHttpExceptions:true,method:"GET",followRedirects:true});
    var result=serp.getContentText().split('/*""*/');
    var searchResults,serpResults,isIndexed=false;
    for(var i=2;i<result.length-1;i++) { 
      searchResults=JSON.parse(result[i]);
      serpResults=searchResults.d.split('<h3 class="r"><a href="/url?q=');
      isIndexed=findIndexedURL(serpResults, page, ignoreCase);
      if(isIndexed) return "Yes";
    }
    return "No";
  } catch(e) { return "No"; }
}
Answer 1

function isIndexed(page,ignoreCase) { 
  var urls=[],RETRIES=5; 
 
  if(!page)return; 
 
  if(page.indexOf("://")!==-1)page=page.split("://")[1].trim(); 
 
  var url='https://www.google.com/search?q='+encodeURIComponent(page)+'&fp=1&dpr=2&sns=1&pf=p&tch=1&filter=0'; 
 
  if(page.slice(-1)=="/")page=page.slice(0,-1); 
 
  try { 
    var serp=UrlFetchApp.fetch(url,{muteHttpExceptions:true,method:"GET",followRedirects:true}); 
    var result=serp.getContentText().split('/*""*/'); 
 
    var searchResults,serpResults,isIndexed=false; 
    var count // количество r 
 
    for(var i=2;i<result.length-1;i++) {  
      searchResults=JSON.parse(result[i]); 
      serpResults=searchResults.d.split('<h3 class="r"><a href="/url?q='); 
      isIndexed=findIndexedURL(serpResults, page, ignoreCase); 
      if(isIndexed) count++ // добавляет +1 к количеству r 
    } 
     
    // если r двое 
    if (count === 2) 
      return "Yes"; 
     
    return "No"; 
 
  } catch(e) { return "No"; }

Answer 2

Например так.

var r1 = document.getElementsByTagName('h1')[0].classList.contains('r'); 
var r2 = document.getElementsByTagName('h1')[1].classList.contains('r'); 
 
console.log(r1 && r2);
<h1 class="r">First</h1> 
<h1 class="r">Second</h1>

READ ALSO
WebSocket cookie

WebSocket cookie

Всем привет, коллеги!

194
Как сделать одно модальное окно для всех картинок галереи на сайте

Как сделать одно модальное окно для всех картинок галереи на сайте

Допустим, у меня есть некоторое количество картинок на сайтеЯ хочу, чтобы при клике на изображение открывалось модальное окно с этим изображением

224
Получение и проверка значения атрибута JS -&gt; выполнение операции

Получение и проверка значения атрибута JS -> выполнение операции

Необходимо найти значение data-deadline, которое равно 48 и если истина, то всю строку tr окрасить в красный(допустим)

194