2013-08-07 155 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>'); 
});