javascript - jQuery 使用append添加元素其中button标签无法生效
阿神
阿神 2017-04-11 09:45:18
[JavaScript讨论组]

1.jQuery 使用append添加元素其中button标签不会出现,点击按钮生成了一个tr和两个td标签,button标签不会出现.预计的是生成
<tr><td></td><td></td><button></button></tr>
实际效果是只生成了<tr><td></td><td></td></tr>,<button>没有生成

2.代码:

<!DOCTYPE>
<html>
  <head>
    <meta charset="utf-8">
    <title>IFE JavaScript Task 01</title>
  </head>
<body>
  <p>
    <label>城市名称:<input id="aqi-city-input" type="text"></label><br>
    <label>空气质量指数:<input id="aqi-value-input" type="text"></label><br>
    <button id="add-btn">确认添加</button>
  </p>
  <table id="aqi-table">
  </table>
<script src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
  $("#add-btn").click(function () {
    var city = $("#aqi-city-input").val().trim() ;
    var num = $("#aqi-value-input").val().trim() ;
    var regex = /^[\u4e00-\u9fa5a-zA-Z\/\(\)]+$/;
    if (!regex.test(city)) {
      alert("请输入中文");
      $("#aqi-city-input").val() = "";
      $("#aqi-value-input").val() = "";
    }else{
      if ($("#aqi-table tr").length===0) {
      $("#aqi-table").append("<tr><td>城市</td><td>空气质量</td><td>操作</td></tr>");
    }
    }
    //添加数据行
    $("#aqi-table").append("<tr><td>" + city + "</td><td>" + num + "</td><button>删除</button></tr>");
    $("#aqi-table button").click(function (event) {
      event.target.parentNode.remove();
    })
  })
})
</script>
</body>
</html>
阿神
阿神

闭关修行中......

全部回复(6)
高洛峰

一.清val

$("#aqi-city-input").val() = "";
$("#aqi-value-input").val() = "";

==>>

$("#aqi-city-input").val("");
$("#aqi-value-input").val("");

二.绑定事件

$(document).on("click","#aqi-table button", function (event) {
      event.target.parentNode.parentNode.remove()
    })

三. 添加数据行

 $("#aqi-table").append("<tr><td>" + city + "</td><td>" + num + "</td><td><button>删除</button></td></tr>");
怪我咯

基础的事件委托

巴扎黑

$("#aqi-city-input").val() = "";
$("#aqi-value-input").val() = "";

jquery的val()不是这样用的
而是把值放在val("")中

伊谢尔伦
$("#aqi-table button").click(function(){
//
})

改成

$(document).on('click',"#aqi-table button",function(){
//
})
PHPz

楼主去了解一下事件委托,append的dom是无法绑定事件的,只能通过委托的形式绑定

大家讲道理

你需要在你的button外包一层td

$("#aqi-table").append("<tr><td>" + city + "</td><td>" + num + "</td><td><button>删除</button></td></tr>");
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号