我需要从“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>
我该如何解决这个问题?我没有收到任何控制台错误。
答案 0 :(得分:4)
更改:
var p = $('#p1').val();
致:
var p = $('#p1').text();
答案 1 :(得分:0)
.val()
仅返回input
,textarea
和select
元素的值。如果您只想阅读元素的内容,则应使用.text()
或.html()
。第一个返回文本,第二个返回元素的HTML内容。
答案 2 :(得分:0)
以下是jQuery的引用
.val()方法主要用于获取表单元素的值 例如input,select和textarea。当空的时候叫 集合,它返回undefined。
正如@ehsan建议的那样,如果您想将内容作为文本获取,请使用.text()
方法。
答案 3 :(得分:0)
.val()
用于获取input
,select
和textarea
元素的值。
如果你想在一个元素中获取文本(例如: div , p 等),你需要使用.text()
。
因此,在您的情况下,您需要更改此内容:
var p = $('#p1').val();
为此:
var p = $('#p1').text();
注意:如果您想在元素中使用完整的html代码,则需要使用.html()
。
来源:
答案 4 :(得分:0)
您也可以使用var p = $('#p1').html();