这是我的HTML
{% for song in dj_song_list %}
<div>
<p><h3>{{ song.name }}</h3></p>
<p style="display:none;" class="song_pk">{{ song.id }}</p>
<button type="button" class='vote' onclick="update(this);">Vote as Favourite</button>
</div>
{% endfor %}
我想在p
元素中使用类song_pk
function update() {
console.log($('.song_pk').text());
}
这会打印一个随机的长字符串。如何获取与单击按钮相关联的文本的值?
答案 0 :(得分:2)
利用prev()
并尝试:
function update(elem) { // elem is an current element passed on the button click
console.log($(elem).prev('.song_pk').text()); // will get previous p element text
}
答案 1 :(得分:0)
我的解决方案:
function update(item) {
var text = $(item).parent().find('p.song_pk').text();
//or
var text2 = $(item).prev().text();
};
答案 2 :(得分:0)
试试这个
function update(e) {
console.log($(e).prev('.song_pk').text());//It print clicked element prev p text
console.log($(e).text());//It print clicked element text
}
答案 3 :(得分:0)
看一下发布的原始JSFiddle(http://jsfiddle.net/d43Lr/4/)
合理的解决方案是使更新功能看起来像这样
function update(element) {
console.log($(element).siblings('.song_pk').text());
}
在原始函数中,您发现所有元素都有一个类“song_pk” - 在这里,我们正在查看按钮的兄弟。
(在这里演示:http://jsfiddle.net/Q9H7T/)