你可以在JS字符串打印的HTML标签上使用jQuery选择器吗?

时间:2014-02-24 07:53:34

标签: javascript jquery html selector

很抱歉,如果这个问题具有误导性,我找不到更好的方式来描述我的问题。无论如何,这里是:

假设我有一个按钮start,它最初会为我显示一个字符串。所谓的字符串(我们称之为stringA)通过jQuery输出,如下所示:

$(".start").click(function() {
    $(".startButton").hide('slow', function() {
        $("#table1").html(stringA);
    });
});

好的。凉。这没有任何障碍。现在stringA里面我有多个
<span class="optButton">this is a button</span>个按钮。我的optButton按钮有另一个onClick处理程序,它是这样的:

$(".optButton").click(function() {
    alert("Testing");
    $("#table1").html(stringB);
});

毋庸置疑,点击optButton应该会将#table1的内容替换为stringB。但是,当我尝试它时,它不起作用。我尝试添加alert()来测试并查看jQuery是否设法选择optButton,但似乎没有,因为我没有从alert()函数中获取弹出窗口。

我的理论是,由于optButton不是原始HTML的一部分,并且在字符串stringA内,因此jQuery无法选择optButton。如果是这样,是否有解决此问题的方法?如果不是,问题的实际原因是什么?

1 个答案:

答案 0 :(得分:4)

您需要使用event delegation,因为您的span元素已动态添加到DOM中:

$('#table1').on('click', '.optButton', function() {
    alert("Testing");
    $("#table1").html(stringB);
});

此技术将帮助您将点击处理程序附加到这些新创建的span元素。