使用jQuery更改p标记的内容

使用jQuery更改p标记的内容,jquery,Jquery,如何用新内容替换p的当前内容?我当前的解决方案不起作用。响应返回,所以如果我在函数(Response){}中放入一个警报(“某物”),它就会工作。内容没有被替换,那就是什么都没有发生 $(this).find(".caption").find("#yes").live('click', function() { $.ajax({ url: 'prob.php',

如何用新内容替换p的当前内容?我当前的解决方案不起作用。响应返回,所以如果我在函数(Response){}中放入一个警报(“某物”),它就会工作。内容没有被替换,那就是什么都没有发生

             $(this).find(".caption").find("#yes").live('click', function() {
                $.ajax({
                    url: 'prob.php',
                    data: {action: 'yes'},
                    type: 'post',
                    success: function (response) {
                            $(this).find(".caption").find("#change").html("<p>Come on!</p>");
                        }
                    });
                });
$(this).find(.caption”).find(“\35;是”).live('单击',function(){
$.ajax({
url:'prob.php',
数据:{操作:'是'},
键入:“post”,
成功:功能(响应){
$(this.find(“.caption”).find(“#change”).html(“加油!

”); } }); });
这是我的html:

                 <li>
                        <a class="thumb" name="leaf" href="<?php echo $images_dir.$_SESSION['current_img'].".jpg" ?>" title="Title #0">
                            <img src="<?php echo $images_dir.'thumbs/'.$_SESSION['current_img'].".jpg" ?>" alt='Title #0' />
                        </a>
                        <div class="caption" id="current">
                        <div class="image-title">
                            <p id="change">Image shows a nautillus shell:  
                                <input type="checkbox" id="yes">Yes
                                <input type="checkbox" id="no">No
                            </p>
                        </div>                                 
                    </li>
  • 图像显示了鹦鹉螺壳: 对 不


  • 在ajax内部成功
    上下文将是ajax,而不是实际的DOM元素,因此您可以使用它在ajax调用中传递元素的上下文。另一件事是
    live
    已被弃用,您可以将其用于委托事件处理程序


    在您的内部,ajax成功
    this
    上下文将是ajax,而不是实际的DOM元素,因此您可以使用它在ajax调用中传递元素的上下文。另一件事是
    live
    已被弃用,您可以将其用于委托事件处理程序


    您真的需要遍历DOM树吗?因为你需要的两个元素都有一个唯一的ID,这意味着你可以直接访问它们

    是一个简化的js文件,它可以处理您的代码

    $(document).ready(function () {
    
        $('#yes').on('click', function () {
    
            $('#change').text('Come on!');
    
        });
    });
    
    如果这对您来说不可能,我还有另一个建议,因为其他人已经在给定上下文中提到了您的
    $(this)
    问题。 我建议您将.live()替换为,因为从jQuery v1.7开始就不推荐使用,并在1.9中删除

    编辑


    我还建立了一个“是”和“改变”被改为“类”的网站。在这个小提琴中,您有2个
  • 标记,“加油!”文本被插入右侧
    您真的需要遍历DOM树吗?因为你需要的两个元素都有一个唯一的ID,这意味着你可以直接访问它们

    是一个简化的js摆弄你的代码

    $(document).ready(function () {
    
        $('#yes').on('click', function () {
    
            $('#change').text('Come on!');
    
        });
    });
    
    如果这对您来说不可能,我还有另一个建议,因为其他人已经在给定上下文中提到了您的
    $(this)
    问题。 我建议您将.live()替换为,因为从jQuery v1.7开始就不推荐使用,并在1.9中删除

    编辑


    我还建立了一个“是”和“改变”被改为“类”的网站。在这把小提琴中,你有2个标签,“加油!”文本被插入右边的

    什么东西不起作用?成功没有激发,错误的元素被改变了吗?是否意外添加了某些内容?请准确地说出哪些不起作用,以便我们知道您遇到了什么,而无需对代码进行反向工程。祝你好运
    成功处理程序中的此
    引用了窗口对象。到底什么不起作用?成功没有激发,错误的元素被改变了吗?是否意外添加了某些内容?请准确地说出哪些不起作用,以便我们知道您遇到了什么,而无需对代码进行反向工程。祝你好运
    成功处理程序中的此
    指的是窗口对象。+1 on将live替换为on。标准正在向前发展!您可能想指出,如果有多个标题,id将不起作用。他使用id=“yes”和id=“no”作为选项的事实表明,页面上最终可能会有其他id,在这种情况下,getElementById对于存在多个具有相同值的id的情况的行为是未定义的,根据规范,页面上有多个标题。如果我将live替换为on,则会出现以下错误:位置(19:17)处的浏览器Javascript错误:对象不支持属性或方法'on'11:00:49 PM example-3.php?DBGSESSID=-1(19:17)是否使用低于1.7的jQuery版本?因为.on()是在v1.7+1中将live替换为on时引入的。标准正在向前发展!您可能想指出,如果有多个标题,id将不起作用。他使用id=“yes”和id=“no”作为选项的事实表明,页面上最终可能会有其他id,在这种情况下,getElementById对于存在多个具有相同值的id的情况的行为是未定义的,根据规范,页面上有多个标题。如果我将live替换为on,则会出现以下错误:位置(19:17)处的浏览器Javascript错误:对象不支持属性或方法'on'11:00:49 PM example-3.php?DBGSESSID=-1(19:17)是否使用低于1.7的jQuery版本?因为.on()是在v1.7中引入的