繁体   English   中英

如何使用jquery从html提取元素?

[英]How to extract elements from html using jquery?

我有一个弹出窗口,其中列出了用户拥有的各种播放列表。 点击时,我试图将与视频关联的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>

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

或者相反,您可以尝试获取先前的兄弟姐妹 ,即被单击的A标签上方的DIV标签,然后使用.text()获取其值

另外,您不应该有多个具有相同ID的元素吗? 听起来您有很多ID =“ ADD”的商品?

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

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

 $('#add', $(this)).text(), 

在HTML文档中, .html()可用于获取任何元素http://api.jquery.com/html/的内容,因此请尝试一下:

$('#add').html()

Daveo是正确的,您需要使div的ID唯一,一种选择是将播放列表ID与添加一起使用。 就像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问答: 获取触发事件的元素的ID。

您应该更改标记, 12.2.2嵌套链接是非法的

几乎对确切确定要执行的操作感到困惑。 每个视频都是播放列表的子级吗? 如果是这样,请尝试将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;    

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

希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM