【问题标题】:jQuery get the value of ahref and put it to buttonjQuery 获取 ahref 的值并将其放入按钮
【发布时间】:2012-07-08 00:56:17
【问题描述】:

我有这个问题,我需要获取 href 的值并将其传递给按钮。

这是 jQuery 的正确格式吗?

$(function() {
    var getValue = $('#theLink').getAttributeNode('onclick').value;
    $('.yt_holder').live('click', '.videoThumb4', function(){ 
    $(".videoThumb4").ytplaylist({
        holderId: 'ytvideo4',
        html5: true,
        playerWidth: '520',
        autoPlay: false,
        sliding: false,
        listsliding: true,
        social: true,
        autoHide: false,
        playfirst: 0,
        playOnLoad: false,
        modestbranding: true,
        showInfo: false
    });
    });
});

该按钮可以正常工作,但它只播放他列表中的第一个视频。 网站链接在这里http://cocopop12.site11.com/search/index.php

现在按钮是这个。

<input class="videoThumb4" onClick="http://www.youtube.com/watch?v=' . $yValue['videoid'] . '" type="button" name="previewSel" value="Preview" id="previewbut" />

是这样吗?我需要点击http://www....blabla吗?

我喜欢做按钮的&lt;a href&gt;就是这个。

<?php
echo '
<a class="videoThumb4" href="http://www.youtube.com/watch?v=' . $yValue['videoid'] . '" id="link">
' . $yValue['description'] . '
</a>
';
?>

如何将 .each 用于按钮 {Preview}? 我怎样才能将值放在按钮中,就像 - 当我单击此 href 时它会自动播放视频?但它只播放第一个视频而不是第二个视频的按钮。 我想让它像一个按钮。

感谢您的宝贵时间。

【问题讨论】:

  • 所以场景是你点击链接然后播放链接的视频是你想要的吗?
  • @user1506189:你的问题是什么?请简洁明了。
  • @Spiritfyre:我正在尝试验证他想要的脚本功能。我的问题有什么不清楚的地方?
  • 请编辑它以准确说明所需的功能是什么,并描述您在尝试实现它时发现的错误。如果您提出明确、明确的问题,您更有可能得到合理的答案。
  • 对此我很抱歉。我的问题是,我怎样才能获得 href 的值以将其放到按钮上?我希望我的按钮与 href 功能一样。例如,当我单击预览时,它将播放视频。

标签: jquery button href


【解决方案1】:

因此,如果我正确理解了您的问题,您希望在单击嵌套锚链接时让“预览”按钮跟随嵌套的锚链接。您不能只通过设置 onclick 属性来做到这一点,因为它指定了在引发事件时运行的脚本——而不是要遵循的链接。

如果a 链接仍然存在,您可以让按钮在点击a 链接时触发点击(您已经拥有a 链接点击的处理程序)。

首先,去掉按钮中的onClick="..."

然后,添加以下 javascript 代码来触发链接点击。

$('.yt_holder').on('click', '.videoThumb4', function(e){
    e.preventDefault();
    if($(e.target).is('input[type="button"]')){
        $(this).siblings("a.videoThumb4").first().click();
    }
}

这将绑定到所有.videoThumb4元素的'click'事件(当前在文档中或将来加载),检查它们是否是html按钮,然后触发点击下面对应的锚链接(即由您在问题中的代码处理)。注意.live() 已被弃用,您应该使用.on() 来实现类似功能。


更新:您的新代码应如下所示
$(function() {
    $('.yt_holder').on('click', 'a.videoThumb4', function(e){
        $('.videoThumb4').ytplaylist({
            holderId: 'ytvideo4',
            html5: true,
            playerWidth: '520',
            autoPlay: false,
            sliding: false,
            listsliding: true,
            social: true,
            autoHide: false,
            playfirst: 0,
            playOnLoad: false,
            modestbranding: true,
            showInfo: false
        });
    });
    $('.yt_holder').on('click', 'input.videoThumb4', function(e){
        e.preventDefault();
        $(this).siblings("a.videoThumb4").first().click();
    });
​});​

【讨论】:

  • 你明白我的意思 nbrooks,但我不知道我要把$(".videoThumb4").ytplaylist({ 放在哪里,是在if statement$(this).siblings 下方吗?很抱歉我是这个编程世界的新手。
  • 似乎仍未播放视频。请看链接cocopop12.site11.com/search/index.php
  • 为什么写一个脚本这么难,但是当你运行它时它却不工作 T_T 很容易认为它很容易创建,但实际上它并不容易 huhuhu ..... @nbooks我只是复制并粘贴代码。仍然没有播放视频...
  • 因为我把这个$(function() {?
  • @user1506189 这是必要的。一旦 html 文档准备好,它就会执行您的代码。你的按钮仍然有一个onclick,去掉那些。
【解决方案2】:

我已经检查了您链接到的页面。您所要做的就是获取第三个兄弟(事物是 0 索引,所以我们使用 2),然后在其上执行点击事件:

$('.videoThumb4').click(function(){ 
    $(this).siblings()[2].click();
});

【讨论】:

  • $(this).siblings()[2].click(); $(".videoThumb4").ytplaylist({ holderId: 'ytvideo4', html5: true, playerWidth: '520', autoPlay: true, slip: false, listsliding: true, social: true, autoHide: false, playfirst: 0 ,playOnLoad:假,谦虚品牌:真,showInfo:假}); }); @Kyokasuigetsu 对吗?
  • @user1506189 在 jQuery 对象 $(...)[n] 的索引处获取值返回一个 DOM 元素,而不是 jQuery 对象——因此您不能再在其上调用 jQuery 方法(如 .click()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 2016-09-02
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多