You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery将input输入值替换到p.para标签并覆盖旧值

解决方案

原代码存在的问题

  • 选择器错误:目标元素是<p class="para">,原代码写的$('div.content div.para')选择不到对应元素
  • input值获取逻辑错误:原代码$('input',this)中的this指向的是Okay按钮,无法找到输入框元素
  • 存在多余操作:点击Okay按钮时重复执行$userName.appendTo($contentDiv)属于无效逻辑
  • 事件重复绑定风险:每次点击Action按钮都会重复给Okay、Cancel按钮绑定点击事件,多次点击后会触发多次执行

修改后的jQuery代码

jQuery(function($) {
    const $contentDiv = $('.content');
    // 事件委托绑定Action按钮点击事件,避免重复绑定
    $contentDiv.on('click', 'button:not(.bttn,.bttn_2)', function() {
        // 避免重复生成输入框
        if ($('#input').length) return;
        
        const $userName = $('<h3><input type="text" id="input" placeholder="Enter your name"></h3>');
        const $okay = $('<button class="bttn">Okay</button>');
        const $cancel = $('<button class="bttn_2">Cancel</button>');

        $userName.appendTo($contentDiv);
        $okay.appendTo($contentDiv);
        $cancel.appendTo($contentDiv);
    });

    // Cancel按钮事件委托
    $contentDiv.on('click', '.bttn_2', function() {
        $('#input').closest('h3').remove();
        $('.bttn, .bttn_2').remove();
    });

    // Okay按钮事件委托
    $contentDiv.on('click', '.bttn', function() {
        const inputVal = $('#input').val().trim();
        // 输入不为空时覆盖p.para的原有内容,可按需调整空值逻辑
        if (inputVal) {
            $('p.para').text(inputVal);
        }
        // 移除输入框和操作按钮
        $('#input').closest('h3').remove();
        $('.bttn, .bttn_2').remove();
    });
});

实现说明

  • 采用事件委托绑定所有按钮事件,彻底解决重复绑定问题
  • 每次点击Okay按钮时直接获取输入框的值,赋值给p.para的文本内容,自动覆盖原有内容
  • 新增重复生成输入框的判断,避免多次点击Action按钮生成多个输入框
  • 输入为空时默认保留原有文本,可根据需求自行调整逻辑

内容的提问来源于stack exchange,提问作者Avilash Chak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:24:00