更改/添加子元素<a>&#39;s target attribute via jQuery</a>的子元素

时间:2012-12-26 00:34:01

标签: jquery html dom

我有<div>,如下所示

<div class="divClass">
<ul class="ulClass">
    <li id="liID" class="liClass">
        <a href="myLink">
        <span class="spanClass">myText</span>
        </a>
    </li>
</ul>
</div>

现在我想编写一个jQuery脚本来读取<a>元素并将target属性的值设置为_blank

我经历了JQuery change atributes of child elements并获得了一个剧本。但是,它给了我一个如下的脚本

$('.divClass').click(function(e){

$(this).find('.aclass').text("yeeee");
$(this).find('.imgclass').attr("src", "remove_favorit.png");

e.preventDefault(); 

});

我真正想要的是遍历<div><ul><li>,然后转到其中的<a>并设置target。我怎么能这样做?

我也经历了Get attribute of child element

3 个答案:

答案 0 :(得分:2)

我认为你不希望它在点击时发生,但是下面的代码会在点击target=_blank内的链接时设置divClass

$(function(){
    $('.divClass .ulClass .liClass').on('click', 'a', function(e){
        $(this).attr('target', '_blank');
        e.preventDefault();
    });
});​

此代码将在页面加载时执行

$(function(){
    $('.divClass .ulClass liClass a').attr('target', '_blank');
});​

答案 1 :(得分:2)

在此处查看http://fiddle.jshell.net/MQfJM/

正如您在图像enter image description here中看到的那样,此代码会在页面加载时为页面中的所有元素添加目标空白。

假设您只想从列表中添加target =“_ blank”。你只需要替换

$('a') with $('ul a')

如果您想在用户点击锚点时添加target =“_ blank”,则可以修改我的代码$(document).ready(function(){ /* code */ }) 看起来像

$('a').on( 'click', function(){
   $(this).attr( 'target', '_blank' );
});

答案 2 :(得分:1)

您可以使用:$(".divClass > .ulClass > .liClass > a").attr("target", "_blank")

这是一个非常具体的选择器,删除所有&#39;&gt;&#39;如果你需要。