【问题标题】:Update a href ID using Ajax使用 Ajax 更新 href ID
【发布时间】:2015-03-25 07:56:22
【问题描述】:

在一个页面上,我在一个小型音频播放器中播放歌曲,歌曲每 1 到 2 分钟或我想要的时候更换一次(就像收音机一样)。 用户可以通过这种方式对每首歌曲进行投票:

<span class='up'><a href="" class="vote" id="<?php echo $mes_id; ?>" name="up"><img src="up.png" alt="Down" /></a></span><br />

对于upvote按钮,&lt;div class="totalvotes"&gt;&lt;/div&gt;以获得总票数和

<span class='down'><a href="" class="vote" id="<?php echo $mes_id; ?>" name="down"><img src="down.png" alt="Down" /></a></span>

用于否决按钮。

一切运行良好,但当我单击其中一个按钮进行投票时,页面显然会刷新。 a 元素中的 id="&lt;?php echo $mes_id; ?&gt;" 是我需要每 1-2 秒更新一次的,因为它获取当前正在播放的歌曲的 id。

对于解决方案使用的总投票数:

function refresh_div() {
        jQuery.ajax({
            url:'totalvotes.php',
            type:'POST',
            success:function(totalvotes) {
                jQuery(".totalvotes").html(totalvotes);
            }

        });

    }



    t = setInterval(refresh_div,1000);

这很简单,因为我创建了一个带有类的 div 并在函数中指定了该类。但我不知道如何指定“a”的 ID 每秒更新一次。

【问题讨论】:

  • $(element).attr('href', 'new_href_here');
  • 将所有ID作为数据发送到服务器,返回包含ID和计数的json。简单循环响应以更新页面中的所有投票

标签: javascript php jquery html ajax


【解决方案1】:

我宁愿将该链接放在 div 中并使用 ajax 使用新链接更新该 div

【讨论】:

  • 当我点击其中一个按钮时,我使用类“vote”和 id 的“up”和“down”来更新 totalvotes 值。我怎么能在不弄乱其他功能的情况下做到这一点?
【解决方案2】:

您可以使用 jQuery 的 .attr() 更改 HTML 元素的任何属性。

function updateLink() {
    // get id of current song.
    // newValue is that id. 
    $("a").attr('id',newValue);

}

setInterval(updateLink,1000);

【讨论】:

  • 将页面中所有&lt;a&gt; 标签的每个 id 设置为相同的 id。由于 ID 不能重复,因此没有任何意义并创建无效页面
  • 我知道,这不是一个具体的解决方案,但它给出了如何实现它的想法。
  • 解决方案如charlietfl所说的一般。那么我可以指定要更新哪个a 的元素ID 吗?
  • 是的。 jQuery 与 CSS 选择器一起工作。例如,如果您想将 span 中的 a 更改为 up 类,您可以使用 $('span.up&gt;a').attr('id',newValue)
  • devJunk 完美!正是我想要的!谢谢!
【解决方案3】:

使用 Ajax 获取正在播放的歌曲的 ID 只需使用

在页面加载中全局获取对锚元素的引用
var anchor = $("#<?php echo $mes_id; ?>");

设置

$(anchor).attr("id", idReturnedFromAjaxCall);
$(anchor).attr("href", theUrlIBuilded);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    相关资源
    最近更新 更多