вытащить всю информацию внутри li путем поиска определенного значения внутри него - PullRequest
0 голосов
/ 09 сентября 2018

привет Я работаю над расширением Chrome, которое контролирует веб-сайт, и есть следующие списки:

Это выглядит так:

<ul class="styles">
<li></li>
<li></li>
<li></li>
etc..

каждый ли содержит пользовательские данные

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

data-style-name= "Orange"
href="/example"

Я хочу иметь возможность искать данные li - style-name = "Orange"

затем извлеките из него определенный результат, например, href =

так что-то вроде этого:

const searchStr = "orange";
const lowerSearchStr = searchStr.toLowerCase(); 
const foundItem = (ul .styles all the lis??).find(
    ({ data-name }) => data-name.toLowerCase().includes(lowerSearchStr)
);

что-то подобное сработало бы, я думаю.

Я хочу найти имя-данные, возможно, с ключевым словом и полным именем

, но затем вытащите конкретный href внутри найденного li.

Спасибо, что нашли время прочитать это, и я был бы очень признателен, если бы вы мне помогли;) <3 </p>

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Если вы хотите, чтобы он был только в javascript и код ниже, такой же, как на скриншоте,

search_str       = "orange"; 
search_attr_name = "data-style-name"; 
var all_styles   = my_document.querySelectorAll("[data-style-name]");
matching_url     = "";

if(all_styles.length){
    all_styles.forEach(function(e){ 
        var data_style_name = e.attributes[search_attr_name].value; 
        console.log("TEST data_style_name: ", data_style_name);

        if(data_style_name.length && data_style_name.toLowerCase().indexOf(search_str) > -1) { 

            if(typeof e.attributes["href"].value !== "undefined"){ 
                matching_url = e.attributes["href"].value 
            } 
        }                           
    }); 

    console.log("matching_url: " + matching_url); 
}
0 голосов
/ 09 сентября 2018

Вам нужно будет обработать каждый li, как это,

$("li").each(function() {
allDatas = $(this).data();
search_str = "left";

$.each(allDatas, function(key, val) {
    if(val.length && val.indexOf(search_str) > -1) {
        console.log(val);
    }
});

});

...