Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Альтернатива JQuery выбрке (https://javascript.ru/forum/misc/55305-alternativa-jquery-vybrke.html)

AntonMs 22.04.2015 14:59

Альтернатива JQuery выбрке
 
$('.advclass:contains(7789)')


Как такой поиск по содержимому можно реализовать без JQuery?

Erolast 22.04.2015 15:21

https://developer.mozilla.org/en-US/...erySelectorAll

рони 22.04.2015 15:25

AntonMs,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .red{
       background-color: #FF0000;
  }

  </style>
</head>

<body>

<p>1</p><p class="advclass">7789</p><p class="advclass">1</p>
<script>
  function get(sel,str)
  {
 return  Array.prototype.filter.call(document.querySelectorAll(sel), function(el) { return  el.textContent.indexOf(str) > -1 })

  }
  var elem = get('.advclass','7789')[0]
    elem.classList.add('red')

</script>
</body>

</html>

AntonMs 22.04.2015 15:45

рони,
Спасибо, все работает

Erolast 22.04.2015 16:55

Решение на ES6:
Array.from(document.querySelectorAll(".advclass")).filter(
    (node) => node.innerHTML.contains(7789)
);

Erolast 22.04.2015 17:03

С сохранением типа и немножко ES7:
document.querySelectorAll(".advclass")::Array.prototype.filter(
    (node) => node.innerHTML.contains(7789)
);

рони 22.04.2015 20:37

Erolast,
:thanks:


Часовой пояс GMT +3, время: 19:19.