как вставить элемент перед привязкой, используя JavaScript - PullRequest
1 голос
/ 20 июня 2011
function Insert_Icon() {
 var images = document.images;
 for (var i=0; i<images.length; i++){
    if (images[i].parentNode.tagName.toLowerCase()=='a') {
         var re = new RegExp("google\.com","ig");
        if (re.test(images[i].parentNode.href)){

            alert(images[i].parentNode.href);
        }
      /*  ---need insert this element before anchor----
       var currentElement = document.createElement("img");  
      currentElement.setAttribute("class", "icone"); 
      currentElement.setAttribute("src", "images/google.png"); */ 

    }
 }
}

все изображения с гиперссылкой для google show my png, попробуйте insertBefore, но безуспешно

нравится

<img class="icone" src="images/google.png"/><a href="http://google.com" target="_self"> <img class="cover_imagem" src="cover/2.jpg"</a>

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Я понимаю, что это не совсем ответ на ваш вопрос, но вы можете попробовать использовать css.Однако это не будет работать во всех браузерах.

a[href^="http://google.com"]:before {
    content: url(http://g.etfv.co/http://www.google.com);
}

http://jsfiddle.net/kaleb/vbVck/

Использование JavaScript для выполнения этой операции в цикле вызовет много перерисовок, которые могут снизить производительность и предполагаемую производительность вашегостраница интернета.В идеале вы должны использовать что-то вроде Modernizr , чтобы проверить, поддерживает ли браузер пользователя эти функции, и выполнять откат JS только при необходимости.

0 голосов
/ 20 июня 2011

Если вы говорите, что <img> необходимо удалить из родительского <a> и вставить до этого <a>, то сделайте следующее:

 // parent of <a>--------v    the <img>---------v   the <a>----------v
images[i].parentNode.parentNode.insertBefore( images[i], images[i].parentNode );

Это вызывает insertBefore для parentNode <a> (то есть parentNode <img>) и вставляет <img> перед <a>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...