[英]jquery .parents()
我有一個列表和一個鏈接,我想更改頂部鏈接:
<a class="topLink" href="#">change me</a>
<ul>
<li><a href="#">link name</a></li>
<li><a href="#">link name</a></li>
<li><a href="#">link name</a></li>
<li><a href="#">link name</a></li>
<li><a href="#">link name</a></li>
</ul>
當我點擊“鏈接名稱”鏈接時,我希望將該文本應用於“更改我”鏈接。
我如何用jQuery父母做到這一點? 或者我應該使用什么?
編輯:對不起,我忘了說我會有三個這樣的列表,所以三個鏈接都有一類topLink
$('ul').delegate('a', 'click', function() {
$('.topLink').text($(this).text());
});
不需要在這里調用.parents()
(它也不會真的有效)
通過使用.delegate()
您可以通過僅將一個事件處理程序綁定到父ul
元素來完成工作。 當然,如果ul
有id,那會好得多。
參考: .delegate()
示例: 這里
$('ul li a').click(function () {
$(".topLink").html($(this).html());
});
它已經有一個類,我不會使用父母,因為你必須得到父母的兄弟(也許jquery應該有一個叔叔參考??? jk)。
使用該類將是:
$('li a').click( function() {
$('.topLink').text( $(this).text());
}
如果<ul>
和<a>
是相鄰的兄弟姐妹,那么試試這個:
$('ul').delegate('a','click',function() {
$(this).closest('ul').prev().text( $(this).text() );
});
這使用jQuery的 .prev()
closest()
方法來獲取第一個<ul>
祖先,並使用jQuery的.prev()
方法從<ul>
遍歷到它之前的兄弟。
如果HTML標記與您提供的標記有任何不同,那么您需要提供實際HTML的示例。
我更喜歡使用.closest()
您嘗試更改的anchor
標記不在LI的層次結構中,因此parents()
方法不會將其拾取。 您最好的選擇是通過id或class選擇它並以這種方式更改html值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.