当我使用 jQuery 从“追加”添加文本时,文本没有显示
The text is not displaying when I add it from "append" using jQuery
$(window).load(function(){
var value = $( '#event-id' ).text();
$(window).ready(function(){
$('#send-event').click(function(){
// alert('clicked');
$( ".events" ).append( '<li class="event-item">' + value + '</li>' );
})
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="container">
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Add Event
</button>
<div class="row">
<div class="col-md-3">
<ul class="events">
<li class="event-item"></li>
</ul>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<input type="text" name="event-input" id="event-id">
</div>
<div class="modal-footer">
<button type="button" id="send-event" class="btn btn-success" data-dismiss="modal">Add Event</button>
</div>
</div>
</div>
</div>
这是我开发用于从modal
中的input
附加文本的代码,问题是li
标签正在附加,而不是其中的文本。
真的无法理解我犯了什么错误,谁能解释一下犯了什么错误。
这是小提琴链接。
如另一个答案所述,您正在使用输入元素,因此您应该使用 val
而不是 text
。但是,仅凭这一点并不能解决此问题,因为变量是在函数外部定义的。
它应该在点击功能中,所以它会在每次点击事件中更新。要清除输入,只需将值设置为 n 空字符串。
$(window).load(function(){
$(document).ready(function(){
$('#send-event').click(function(){
var value = $( '#event-id' ).val();
$( ".events" ).append( '<li class="event-item">' + value + '</li>' );
$("#event-id").val("");
})
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="container">
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Add Event
</button>
<div class="row">
<div class="col-md-3">
<ul class="events">
<li class="event-item"></li>
</ul>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<input type="text" name="event-input" id="event-id">
</div>
<div class="modal-footer">
<button type="button" id="send-event" class="btn btn-success" data-dismiss="modal">Add Event</button>
</div>
</div>
</div>
</div>
更改
var value = $( '#event-id' ).text();
自
var value = $( '#event-id' ).val();
由于该$( '#event-id' )
会在$('#send-event')
次点击之间发生变化,因此您可能不希望在点击处理程序之外缓存其值(这是您想要的.val()
,而不是.text()
)。否则,$( '#event-id' ).val()
将永远是页面首次加载时的任何内容。
$(window).load(function(){
$(window).ready(function(){
$('#send-event').click(function(){
var value = $( '#event-id' ).val();
// alert('clicked');
$( ".events" ).append( '<li class="event-item">' + value + '</li>' );
})
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="container">
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Add Event
</button>
<div class="row">
<div class="col-md-3">
<ul class="events">
<li class="event-item"></li>
</ul>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<input type="text" name="event-input" id="event-id">
</div>
<div class="modal-footer">
<button type="button" id="send-event" class="btn btn-success" data-dismiss="modal">Add Event</button>
</div>
</div>
</div>
</div>
相关文章:
- Javascript,将文本添加到具有现有文本节点的元素中
- 选中单选框时,将文本添加到文本框中
- 为未标记的文本添加CSS样式
- 如何将表格中的文本添加到使用按钮输入的文本区域
- 有没有办法将mouseOver上的个人文本添加到完整日历中
- 改变“;onClick"这个jQuery的操作从清除输入文本改为将输入文本添加到下面的列表中
- 如何使用JavaScript将链接文本添加到电子邮件中
- 将动态验证文本添加到自定义jQuery验证规则中
- 将文本添加到每个数组元素的开头
- 单击将按钮中的文本添加到带有jQuery或JS的输入框中
- 通过按钮将不同的文本添加到文本区域-不起作用
- 如何为Fabric.js中的文本添加CSS属性
- 如何将预加载程序文本添加到jQuery Cycle 2中
- Javascript Regex exec 在向搜索文本添加属性/引号后冻结
- 如何在所有浏览器中向文本区域中的选定文本添加 标记
- jQuery将文本添加到放置在表格单元格中的图像中
- D3 垂直条形图为标签文本添加换行符
- 单击时从列表中将文本添加到文本框的方法
- 将文本添加到 D3 圆环图的中心
- 如何将非可变文本添加到javascript打印弹出窗口中