如何从动态元素中获取价值

时间:2016-09-21 15:37:33

标签: javascript jquery

我需要从“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>

我该如何解决这个问题?我没有收到任何控制台错误。

5 个答案:

答案 0 :(得分:4)

更改:

var p = $('#p1').val();

致:

var p = $('#p1').text();

答案 1 :(得分:0)

.val()仅返回inputtextareaselect元素的值。如果您只想阅读元素的内容,则应使用.text().html()。第一个返回文本,第二个返回元素的HTML内容。

答案 2 :(得分:0)

以下是jQuery的引用

  

.val()方法主要用于获取表单元素的值   例如input,select和textarea。当空的时候叫   集合,它返回undefined。

正如@ehsan建议的那样,如果您想将内容作为文本获取,请使用.text()方法。

答案 3 :(得分:0)

.val()用于获取inputselecttextarea元素的值。

如果你想在一个元素中获取文本(例如: div p 等),你需要使用.text()

因此,在您的情况下,您需要更改此内容:

var p = $('#p1').val();

为此:

var p = $('#p1').text();

注意:如果您想在元素中使用完整的html代码,则需要使用.html()

来源:

答案 4 :(得分:0)

您也可以使用var p = $('#p1').html();