2015-02-07 96 views
0

我有一個無序列表,並在每個<li>元素下有一個<label>和一個鏈接以獲得<label>的文本。獲取鏈接上的標籤元素文本點擊

例如,如果我點擊第一個「複製文本」鏈接,我想獲得「label1」,第二個我想要「label2」。

我想出了下面的代碼,但它不工作。任何人都可以請幫我解決這個問題。

HTML代碼:

<ul> 
    <li> 
     <label>label1</label> 
     <a onclick="copyText()">Copy Text</a> 
    </li> 
    <li> 
     <label>label2</label> 
     <a onclick="copyText()">Copy Text</a> 
    </li> 
</ul> 

JS代碼:

function copyText() { 
    alert($(this).closest('li').children('label').text()); 
} 

回答

2

您需要通過元素的上下文,並更改Text.text()

onclick="copyText(this)" 
function copyText(el) { 
    alert($(el).closest('li').children('label').text()); 
} 

Example Here


你可能只是避免jQuery和直接獲得元素的文本:

function copyText(el) { 
    alert(el.previousSibling.textContent); 
} 

我建議我們荷蘭國際集團非侵入式JavaScript並添加事件監聽器來代替:

$('li a').on('click', function() { 
    alert($(this).closest('li').find('label').text()); 
}); 

Example Here

+0

呀,感謝您的建議 – Kartic 2015-02-07 19:21:49