如何通过元素名称从append child获取值?

时间:2017-09-18 05:46:06

标签: jquery

我得到了这个HTML:

<div id="mydiv" name="mydiv" class="mydiv"></div>

我正在赞美:

$(".mydiv").append("<div><p><textarea id='myTextarea' name='myTextarea'></textarea><input type='button' class='sendReply btn btn-default' value='my button'></input></p></div>");

现在我想通过它的名字从我的textarea元素中获取值...我试过这个,但是不起作用:

jQuery(document).on('click','.sendReply', function () {
    alert($("#mydiv").children("#myTextarea").val());
});

出了什么问题?

5 个答案:

答案 0 :(得分:2)

当前代码无效,因为.children()正在使用,仅针对直接孩子。

由于您已指定ID属性,因此可以使用它直接访问

console.log($("#myTextarea").val());

如果要多次追加,请使用DOM traveal方法来定位元素。由于重复的ID会使HTML无效。

jQuery(document).on('click', '.sendReply', function() {
  console.log($(this).prev("textarea").val());
});

$(".mydiv").append("<div><p><textarea id='myTextarea' name='myTextarea'></textarea><input type='button' class='sendReply btn btn-default' value='my button'></input></p></div>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv" name="mydiv" class="mydiv"></div>

答案 1 :(得分:1)

如果您仍然向textarea提供了具体的ID,则无需参考div children。您可以使用ID

选择它来获取其价值

这是一个工作片段:

$(".mydiv").append("<div><p><textarea id='myTextarea' name='myTextarea'></textarea><input type='button' class='sendReply btn btn-default' value='my button'></input></p></div>");

jQuery(document).on('click','.sendReply', function () {
    alert($("#myTextarea").val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv" name="mydiv" class="mydiv"></div>

答案 2 :(得分:1)

您可以使用解决方案

$mPDF1 = Yii::app()->ePdf->mpdf();
$mPDF1 = Yii::app()->ePdf->mpdf('', 'A4');
$html= $this->renderPartial('poPdfTemplate', array('pdfValues'=>$ponumberData,'po_number'=>$po_number), true);
$mPDF1->WriteHTML($html,0);
//$mPDF1->WriteHTML($html);
$mPDF1->Output();
$(".mydiv").append("<div><p><textarea id='myTextarea' name='myTextarea'></textarea><input type='button' class='sendReply btn btn-default' value='my button'></input></p></div>");

jQuery(document).on('click','.sendReply', function () {
    alert($("#mydiv").find("#myTextarea").val());
});

应该是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="mydiv" name="mydiv" class="mydiv"></div>而不是alert($("#mydiv").find("#myTextarea").val());

用于遍历使用alert($("#mydiv").children("#myTextarea").val());方法而不是.find

希望这会对你有所帮助。

答案 3 :(得分:1)

children()只能为您提供只有子属性的属性,如果您不知道子属性的级别而不是find()

,则可以使用children()方法
alert($("#mydiv").find("#myTextarea").val());

OR

它可以直接访问

alert($("#myTextarea").val());

答案 4 :(得分:0)

尝试使用textarea的id选择器。它正在发挥作用。

&#13;
&#13;
$(".mydiv").append("<div><p><textarea id='myTextarea' name='myTextarea'></textarea><input type='button' class='sendReply btn btn-default' value='my button'></input></p></div>");
jQuery(document).on('click','.sendReply', function () { alert($("#myTextarea").val());
});
&#13;
<div id="mydiv" name="mydiv" class="mydiv"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

相关问题