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

215
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

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

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

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

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

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

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

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

154