在jQuery中向DOM添加新元素后,Selector无法正常工作

时间:2014-03-30 15:26:13

标签: jquery ajax dom

我有一个带有ID'内容的div。进入这个div位于文本输入和跨度与日期。进入一个跨度我写了添加内容的日期。对于这个跨度,我使用Timeago插件每分钟更新当前时间的差异与添加。当我更新此内容时,jQuery不会选择新添加的元素。我应该做什么?这是代码: HTML代码:

<div id="content">
    <input id="text" type="text" name="yourName"/>
    <button type="button" onclick="changeContent();">Change</button>
    <span class="timeago" title="2014-03-30 20:04"></span>
</div>

Javascript代码:

<script language="text/javascript">
    function changeContent() {
        var content = $('#content');
        var value = $('#text').val();
        var spanElm = $('span.timeago');
        $.ajax({
            url:'/ajax/change.php',
            dataType: "json",
            type: "POST",
            cache: false,
            data: {"text":value},
            success: function (data) {
                spanElm.remove();
                content.append(data);
            }
        });
    }
    jQuery(function($) {
        jQuery("span.timeago").timeago([]);
    });
</script>

Ajax返回一个带有新日期的span元素。示例:<span class="timeago" title="2014-03-30 20:07"></span>

1 个答案:

答案 0 :(得分:1)

jQuery("span.timeago").timeago([]);回调中使用此success

因为ajax本质上是异步的。

完整代码:

<script language="text/javascript">
    function changeContent() {
        var content = $('#content');
        var value = $('#text').val();
        var spanElm = $('span.timeago');
        $.ajax({
            url:'/ajax/change.php',
            dataType: "json",
            type: "POST",
            cache: false,
            data: {"text":value},
            success: function (data) {
                spanElm.remove();
                content.append(data);
                jQuery("span.timeago").timeago([]);
            }
        });
    }
</script>