2013-08-07 160 views
1

我想选择在某些divs选择与某些元素

a tag我的HTML

<div class='test'> 
    <div> 
     <div> 
     <a href='#'> bunch of stuff1 </a> 
     <a href='#'> bunch of stuff2 </a> 
     <a href='#'> bunch of stuff3 </a> 
     </div>  
    </div> 
</div> 

我想更换上面的html

<div class='test'> 
    <div> 
     <div> 
     <a href='#' class='beam' onclick='return false;'> bunch of stuff1 </a> 
     <a href='#' class='beam' onclick='return false;'> bunch of stuff2 </a> 
     <a href='#' class='beam' onclick='return false;'> bunch of stuff3 </a> 
     </div>  
    </div> 
</div> 

我的代码的所有链接:

var texts =$('.test') 

texts.children().children().find('a').each(function(){ 
     var text = $(this).text(); 
     $(this).replaceWith("<a href='#' class='beam' onclick='return false;'>" + text + "</a>"); 
    }) 

上面的代码似乎不起作用。我无法更改任何html结构,也无法给出这些div idclass。谢谢您的帮助!

回答

1

这种替换代码:

$('.test div div a').addClass('beam').click(function() { 
    return false; 
}); 

jsFiddle

0
$('.test a').click(function(){ 
    return false; 
}); 

这和上面的一样,但在jQuery中完成。

+0

这不添加“梁”类,如OP通缉。 –

+0

@BrianRogers真的够了,完全错过了。 – Ohgodwhy

0

只是删除.children().children()

var texts =$('.test') 

texts.find('a').each(function(){ 
     var text = $(this).text(); 
     $(this).replaceWith("<a href='#' class='beam' onclick='return false;'>" + text + "</a>"); 
    }) 
1

修改您的JS如下:

var texts = $('.test') 

texts.find('a').each(function(){ 
    $(this).addClass('beam').on('click', function(){ 
    return false; 
    }); 
}); 

的jsfiddle可以在这里找到:http://jsfiddle.net/pbwDV/

可以进一步简化texts.find('a')$('.test')

这会遍历你的锚,使用addClass添加类名。如果你不想使用.on('click')我想你也可以使用.attr('onclick','return false;')和你的JS会是这个样子:

$('.test a').each(function(){ 
    $(this).addClass('beam').attr('onclick','return false;'); 
}); 
1

如果你只是想添加一些属性,你也可以这样做:

$('.test a').attr({'class:beam', 'onclick':'return false;'}); 

好像已经有一些答案可以帮助您达到相同的结果,但您不需要使用.each()来完成标记。

1

尝试以下操作:

$('.test>div>div>a').each(function(){ 
    var txt = $(this).text(); 
    $('.test>div>div').html("<a href='#' class='beam' onclick='return false;'>"+txt+'</a>'); 
});