javascript - jQuery获取点击链接的ID

标签 javascript jquery html

我在 jQuery 中有一个模式框,我创建它来显示一些嵌入代码。 我希望脚本获取所点击链接的 id,但我似乎无法正常工作。

有谁知道我该怎么做或者为什么会这样?

我的 jQuery 代码是:

function generateCode() {
    var answerid = $('.openembed').attr('id');
    if($('#embed input[name="comments"]:checked').length > 0 == true) {
        var comments = "&comments=1";
    } else {
        var comments = "";
    }
    $("#embedcode").html('<code>&lt;iframe src="embed.php?answerid=' + answerid + comments + '" width="550" height="' + $('#embed input[name="size"]').val() + '" frameborder="0"&gt;&lt;/iframe&gt;</code>');
}

$(document).ready(function () {
    $('.openembed').click(function () {
        generateCode();
        var answerid = $('.openembed').attr('id');
        $('#box').show();
        return false;
    });
    $('#embed').click(function (e) {
        e.stopPropagation()
    });
    $(document).click(function () {
        $('#box').hide()
    });
});

我的标记是:

<a href="#" id="7830" class="openembed">Embed</a>
<a href="#" id="9999" class="openembed">Embed</a>

最佳答案

你的问题在这里:

$('.openembed')

返回匹配元素的数组。您应该只选择被点击的元素。 $('.openembed') 如果您将 click 事件分配给具有此类的所有元素,则可以正常工作。但另一方面,您无法知道点击了哪个。

但幸运的是,在单击处理函数的主体中,您可以调用 $(this)

$(this) 将返回当前(和点击的元素)。

// var answerid = $('.openembed').attr('id'); // Wrong
var answerid = $(this).attr('id');   // Correct
// Now you can call generateCode
generateCode(answerid);

另一个错误是 generateCode 函数的主体。在这里您应该传递所选元素的 ID。这是正确的实现方式。

function generateCode(answerid) {
    if($('#embed input[name="comments"]:checked').length > 0 == true) {
        var comments = "&comments=1";
    } else {
         var comments = "";
    }
    $("#embedcode").html('<iframe src="embed.php?answerid=' + answerid + comments + '" width="550" height="' + $('#embed input[name="size"]').val() + '"frameborder="0"></iframe>');
}

我在这里以正确的行为实现了您的代码:http://jsfiddle.net/pSZZF/2/

关于javascript - jQuery获取点击链接的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809872/

相关文章:

JavaScript - 使用 reduce 函数从数组中获取中间数

javascript - 从 Javascript 嵌套对象生成 HTML

没有动画但功能完整的jQuery切换()?

javascript - 有时刷新页面时没有任何显示

javascript - 遍历 html 表

javascript - 有没有办法防止未定义的javascript变量在插入html时显示 'undefined'?

javascript - 用户删除并重新安装应用程序后管理 Parse _Installation 类

javascript - 事件不触发

javascript - 如何从父数组创建新数组?

javascript - 为什么不显示 CSS 转换?