как получить значение массива и сопоставить его с window.locaton - PullRequest
0 голосов
/ 04 октября 2019

Я хочу удалить часть строки в цикле, а затем я должен проверить, равна ли она window.location.

linkAdd = должен возвращать массив. но похоже, что он возвращает строку. Итак, как мне проверить, есть ли на сайте значение «лайк», равное adresPath var? Как мне создать переменную, которая содержит все /123/1.php,/123/2.php,/123/3.php, а не только один /123/1.php? А затем проверьте, что /123/1.php равен переменной adresPath?

Я попытался удалить первую часть домена в каждом элементе. обманывая их. и делает .replace. но, похоже, не возвращает массив. для ясного объяснения проверьте код.

<code>var adresPath = window.location.pathname; 
var link      = $('.menu-item>a');
var linkAdres = $('.menu-item>a').href;
var linkAdd   =  $('.menu-item>a').href.replace("http://bertconinx.com/","")
//link linkAdres and linkadd should be arrays. but when i try linkadd[i] it returns a letter of the string.

//ther are 19 a href in my code.


for(i = 0; i < link.length; i++){
    var linkAdd   = link[i].href.replace("http://bertconinx.com/","")
    };

> linkAdd= should return a array. but it looks like its return a string.
> So how do I check if there is a like on the website that is equal to
> the adresPath var? how do I create a var that contians all
> /123/1.php,/123/2.php,/123/3.php, and not just one /123/1.php? And
> then check /123/1.php is equal to the adresPath variable?


if(adresPath=linkAdd[i]){alert(happy happy it works!)};```

> linkAdd= should return a array. but it looks like its return a string.
> So how do I check if there is a like on the website that is equal to
> the adresPath var? how do I create a var that contians all
> /123/1.php,/123/2.php,/123/3.php, and not just one /123/1.php? And
> then check /123/1.php is equal to the adresPath variable?
> 
> error messegas are.. 
> 
> undefined when tying to return an object of the array I get the letter
> of the string. ex. link[9] retunrs "p" of php.




the html

<pre>

    <li id="menu-item-461" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-461">

        <a href="http://bertconinx.com/category/portriats/">portriats</a>
        <ul class="sub-menu">
            <li id="menu-item-473" class="menu-item menu-item-type-post_type menu-item-object-post current-menu-item menu-item-473">
                        <a href="http://bertconinx.com/2019/08/12/non-profit-profit/" aria-current="page">Disarray Body</a></li>
            <li id="menu-item-617" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-617">
                    <a href="http://bertconinx.com/2019/09/16/girls/">#Girls</a></li>
        </ul>
</li>

<li id="menu-item-462" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-461">

        <a href="http://bertconinx.com/category/portriats/">Item2</a>
        <ul class="sub-menu">
            <li id="menu-item-412" class="menu-item menu-item-type-post_type menu-item-object-post current-menu-item menu-item-473">
                        <a href="http://bertconinx.com/2019/08/12/non-profit-profit/" aria-current="page">object1</a></li>
            <li id="menu-item-619" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-617">
                    <a href="http://bertconinx.com/2019/09/16/girls/">Object2</a></li>
        </ul>
</li> 

1 Ответ

0 голосов
/ 04 октября 2019

Вот что вы можете сделать в простом javascript

const links = document.getElementsByClassName('menu-item');
const anchors = [];
for (let i = 0; i < links.length; i++) {
    anchors.push(links[i].getElementsByTagName('a')[0]); 

}

const linkAddresses = [...anchors].map(anchor => anchor.href.replace("http://bertconinx.com/",""));

Теперь у вас будет массив типа ["category/portriats/", "2019/08/12/non-profit-profit/", "2019/09/16/girls/", "category/portriats/", "2019/08/12/non-profit-profit/", "2019/09/16/girls/"] в вашей переменной linkAddress. Теперь вы можете перебрать этот массив и найти, совпадают ли какие-либо ссылки с addresPath

linkAddresses.forEach(address => {
    if (address === adresPath) {
        // matches
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...