我有一个弹出框,列出了用户拥有的各种播放列表。点击后,我试图将与视频相关联的video_id添加到相应的播放列表中。我不确定如何实现这一点;用户点击popover中的链接,video_id(来自div #add)和所选择的播放列表(有多个用户生成名称的播放列表,但只有一个被选中)应该被提取。有什么建议吗?
<script type="text/javascript">
$(document).ready(function() {
$("#muncher").click(function(event){
event.preventDefault();
$.ajax({
type:"POST",
url:"/edit_favorites/",
data: {
'video_add': $('#add').val(), // from form
'playlist_selected': $('#').val() //from form
},
success: function(){
$('#muncher').html("Added");
}
});
return false;
});
});
</script>
<div id = 'muncher'>
<div id = 'add'>12345</div>
<a href = "#" id="munch" rel="popover" data-html="true" data-placement="right" data-content= "<a href= '#'>Favorites</a><br>
<a href = '#' class = 'Funny'>Funny</a><br>
<a href = '#' class = 'test'>test</a><br>
<a href = '#' class = 'test1'>test1</a><br>
" data-original-title="Add to your plate">
Munch
</a>
</div>
答案 0 :(得分:0)
您可以尝试使用jquery data attribute将ID存储在A
代码中。
或者您可以尝试获取previous sibling DIV
标记,该A
标记位于被点击的 $('#add').val(),
标记之上,然后使用.text()获取其值
此外,您不应该有多个具有相同ID的元素?听起来你有很多ID =“ADD”的物品?
在这种情况下,您可能需要从
中删除代码 $('#add', $(this)).text(),
到
{{1}}
答案 1 :(得分:0)
在HTML文档中,.html()
可用于获取任何元素http://api.jquery.com/html/的内容,因此请尝试一下:
$('#add').html()
Daveo是正确的,你需要使你的div的id唯一,一个选项是使用播放列表ID和add。比如id="add_12345"
然后,在每个add_ [id变量] div中使用onclick内联而不是.click
jQuery方法:
<div id="add_12345" onclick="addClick(this);">
获取id的javascript函数:
function addClick(element) {
id = element.id.slice(element.id.indexOf("_") + 1);
alert(id);
//your ajax post code here
}
有几种方法可以处理您想要实现的目标,请查看这个非常好的stackoverflow Q&amp; A以获取有关此主题的更多信息: Getting the ID of the element that fired an event
您应该更改标记 12.2.2 Nested links are illegal
答案 2 :(得分:0)
对于确切地确定你要做什么感到困惑。每个视频都是播放列表的孩子吗?如果是这样,请尝试将this.id作为参数传递给onClick事件...
...click="toPlaylist(this.id)"
function toPlaylist(clicked) {
var tempVideo = clicked;
// Get a parent node ID like this...
var tempList = $(clicked).parentNode.id;
// Do something else...
nextAction(tempVideo, tempList);
}
PS:您可能需要做类似的事情
var tempVideo = '#'+clicked;
...对于变量,我不确定。
希望这有用。