Как поставить target = "_ blank" в jQuery? - PullRequest
20 голосов
/ 19 декабря 2009

Я пробовал много вариантов, чтобы поместить target="_blank" в ссылки с jQuery, но я не могу заставить его работать.

Вот мой код:

var thumbfile = "<?php echo $smit_iturl_v; ?>";
jQuery(document).ready(function () {
    var actualHost = jQuery.trim(jQuery.url.attr("host"));
    jQuery("a img").each(function (i) {

        if (jQuery.trim(jQuery.url.setUrl(jQuery(this).attr("src")).attr("host")) == actualHost &&      
            (jQuery.url.setUrl(jQuery(this).attr("src")).attr("path")).indexOf("wp-content") != -1 &&

            isImage(jQuery.url.setUrl(jQuery(this).attr("src")).attr("file"))) {

            var parentTag = jQuery(this).parent().get(0).tagName;
            parentTag = parentTag.toLowerCase();

            if (parentTag == "a" &&
            jQuery.url.setUrl(jQuery(this).parent().attr("href")).attr("host") == actualHost &&
            jQuery.url.setUrl(jQuery(this).parent().attr("href")).attr("path").indexOf("wp-content") != -1 &&
            isImage(jQuery(this).parent().attr("href"))) {

                var description = (jQuery(this).attr("alt") == "") ? jQuery(this).attr("title") : jQuery(this).attr("alt");
                jQuery(this).parent().attr("href", thumbfile +
                        "?title=" + jQuery(this).attr("title") +
                        "&description=" + description +
                        "&url=" + stripDomain(jQuery(this).parent().attr("href"))

                );
            }
        }
    });

Как я могу это сделать?

Ответы [ 4 ]

77 голосов
/ 19 декабря 2009

Слишком много информации! Это должно работать нормально:

$("a").attr("target","_blank");

См. Пример здесь http://jsbin.com/evexi/edit. Отлично работает.

16 голосов
/ 19 декабря 2009

Поскольку вы перебираете элементы изображения, являющиеся дочерними элементами привязки, в начале цикла вы можете установить его:

//...
jQuery("a img").each(function (i) {
  // 'this' is the img element, you should get the parent anchor
  jQuery(this).parent().attr('target', '_blank'); 
  //...
});
10 голосов
/ 19 ноября 2011

Чтобы добавить к удивительной простоте этого ответа, который, кстати, был очень полезен, вы можете указать несколько типов ссылок, например:

$("#whatever_id a, #another_id, #yet_another, #etc").attr("target","_blank");

Просто держите разные идентификаторы через запятую.

7 голосов
/ 21 февраля 2013

Вы можете дать всем ссылкам, которые вы хотите открыть в новом окне, класс, например 'target-blank';

<a href='#' class='any existing classes target-blank'>Opens in a new window</a>

затем добавьте каплю jQuery

$("a.target-blank").attr('target','_blank');

действительный xhtml и DOM, который понимает target = '_ blank'!

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