2015-02-07 80 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