[英]How to get value from a dynamic element
我需要从“p”元素中获取值,我用jQuery绘制这个“p”并且没关系,然后我有一个按钮,当我点击它时我想显示“p”元素的值,但我不知道得到任何信息,这是一个简单的代码示例:
$(document).ready(function() { $('#c').click(function() { var p = $('#p1').val(); alert(p); }); draw(); }); function draw() { var html = ""; html += '<p id="p1">Hi</p>'; $('#d').html(html); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="c">Click</button> <hr /> <div id="d"> </div>
我怎么解决这个问题? 我没有得到任何控制台错误。
变化:
var p = $('#p1').val();
至 :
var p = $('#p1').text();
.val()
仅返回input
, textarea
和select
元素的值。 如果您只想阅读元素的内容,则应使用.text()
或.html()
。 第一个返回文本,第二个返回元素的HTML内容。
这是jQuery的引用
.val()方法主要用于获取表单元素的值,例如input,select和textarea。 在空集合上调用时,它返回undefined。
因此,正如@ehsan建议的那样,如果要将内容作为文本获取,请使用.text()
方法。
.val()
用于获取input
, select
和textarea
元素的值。
如果要获取元素内的文本(例如: div , p等),则需要使用.text()
。
所以,在你的情况下,你需要改变这个:
var p = $('#p1').val();
为了这:
var p = $('#p1').text();
注意:如果要在元素中使用完整的html代码,则需要使用.html()
。
资料来源:
你也可以使用var p = $('#p1').html();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.