0

我有一个弹出窗口,其中列出了用户拥有的各种播放列表。单击时,我试图获取与要添加到适当播放列表的视频相关联的 video_id。我不确定如何实现这一点;用户单击弹出窗口中的链接,应该提取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>
4

3 回答 3

0

您可以尝试使用jquery 数据属性将 ID 存储在A标签中。

或者相反,您可以尝试获取上一个兄弟,它是被点击的DIV标签上方的A标签,然后使用 .text() 来获取它的值

此外,您不应该有多个具有相同 ID 的元素吗?听起来您有很多 ID="ADD" 的项目?

在这种情况下,您可能需要从

 $('#add').val(), 

 $('#add', $(this)).text(), 
于 2012-12-03T00:26:43.090 回答
0

在 HTML 文档中,.html()可以用来获取任何元素的内容,http://api.jquery.com/html/ 所以试试这个:

$('#add').html()

Daveo是正确的,您需要使 div 的 id 唯一,一种选择是使用播放列表 id 和 add。像id="add_12345"

然后,代替.clickjQuery 方法,在每个 add_[id variable] div 中使用 onclick 内联:

<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&A 以了解有关此主题的更多信息: 获取触发事件的元素的 ID

你应该改变你的标记,12.2.2 嵌套链接是非法的

于 2012-12-03T00:28:40.937 回答
0

对您到底要做什么有点困惑。每个视频都是播放列表的孩子吗?如果是这样,请尝试在 onClick 事件中将 this.id 作为参数传递...

...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;    

...对于变量,我不确定。

希望这会有所帮助。

于 2012-12-03T05:16:14.323 回答