2016-09-18 2 views
-3

HTML кодpreg_match в JS

<li class="btn-xs"><a tabindex="-1" 
    href="/admin/orders/restart/id/163148" 
    >Restart</a></li> 
    <li class="btn-xs" style="display:none;"><a tabindex="-1" href="" data- 
    toggle="modal" data-target="#check_alls_163148_s" 
    style="cursor:pointer;">Set&nbsp;start&nbsp;count</a></li> 
    <li class="btn-xs"><a tabindex="-1" 
    href="/admin/orders/restart/id/162616">Restart</a></li> 
    <li class="btn-xs" style="display:none;"><a tabindex="-1" href="" data- 
    toggle="modal" data-target="#check_alls_162616_s" 
    style="cursor:pointer;">Set&nbsp;start&nbsp;count</a></li> 

Как я могу извлечь /admin/orders/restart/id/163148 и /admin/orders/restart/id/162616 в JS? Мне нужно положить его в массив.

Я плохо разбираюсь в preg_match. Как я могу извлечь/админ/заказы/перезагрузка/ID/163148 и/админ/заказы/перезагрузка/ID/162616 с помощью JS

+0

Возможный дубликат [preg \ _match в JavaScript?] (Http://stackoverflow.com/questions/3291289/preg-match-in-javascript) – mdziekon

+0

не дублируется .. в другом вопросе есть только 1 .. в моему примеру мне нужно вернуть первый и второй ... как в массиве – PaulE

+0

У вас только этот html в виде строки или вы находитесь в среде браузера? –

ответ

1
Array.prototype.slice.call(document.querySelectorAll('li.btn-xs a')) 
       .map(a => a.getAttribute("href")) 
       .filter(href => href && href.length > 0) 

Или, с добавлением пуха:

function selectByNonBlank() { 
 
    return Array.prototype.slice.call(document.querySelectorAll('li.btn-xs a')).map(a => a.getAttribute("href")).filter(a => a && a.length > 0); 
 
} 
 

 
function selectByRestart() { 
 
    return Array.prototype.slice.call(document.querySelectorAll('li.btn-xs a')).filter(a => a.innerHTML == "Restart").map(a => a.getAttribute("href")); 
 
} 
 

 
function init() { 
 
    document.getElementById("restart").addEventListener("click", function() { console.log(selectByRestart()); }); 
 
document.getElementById("href").addEventListener("click", function() { console.log(selectByNonBlank()); }); 
 
} 
 

 
document.addEventListener("DOMContentLoaded", init, false);
<li class="btn-xs"><a tabindex="-1" href="/admin/orders/restart/id/163148" >Restart</a></li> 
 
<li class="btn-xs" style="display:none;"><a tabindex="-1" href="" data-toggle="modal" data-target="#check_alls_163148_s" style="cursor:pointer;">Set&nbsp;start&nbsp;count</a></li> 
 
<li class="btn-xs"><a tabindex="-1" href="/admin/orders/restart/id/162616" >Restart</a></li> 
 
       <li class="btn-xs" style="display:none;"><a tabindex="-1" href="" data-toggle="modal" data-target="#check_alls_162616_s" style="cursor:pointer;">Set&nbsp;start&nbsp;count</a></li> 
 
<button id="restart">Select by Restart</button> 
 
<button id="href">Select by non blank href</button>

+0

Мне нужно только извлечь href, где есть «Перезапустить» после PaulE

+0

@PaulE Это требование не в этом вопросе, но это достаточно просто, чтобы handle – Tibrogargan

+0

@PaulE Попробуйте (пушистая версия) – Tibrogargan

 Смежные вопросы

  • Нет связанных вопросов^_^