单引号或双引号在javascript追加

问题描述:

我是jquery初学者, 用单引号或双引号混淆了myName文本框的值,我想赶上文本框的值。单引号或双引号在javascript追加

这是我的代码,调用函数save_order不工作,因为在 的document.getElementById('MYNAME')失败语法.value的

什么是正确的语法?

<script> 
var param=3; 
$('#saveList').append(
'<p>FullName : <input type="text" id="myName"></p>'+ 
'<p><input type="button" value="SAVE" onClick="save_order('+ param +',document.getElementById('myName').value)"></p>'); 
</script> 

请帮我人 谢谢

+0

能否请您发布所有的代码?包括HTML和导致错误的部分。 – doutriforce

的问题是在调用的document.getElementById。随着逃跑,你可以达到你的结果。

<script> 
var param=3; 
$('#saveList').append(
'<p>FullName : <input type="text" id="myName"></p>'+ 
'<p><input type="button" value="SAVE" onClick="save_order('+ param +',document.getElementById(\'myName\').value)"></p>'); 
</script> 

检查部分:document.getElementById('myName') ...

我的一部分:document.getElementById(\'myName\')

当您使用'为字符串的开始和结束的字符,你必须使用\'如果你想使用'作为字符串文字内部。

+0

谢谢你..现在工作 – Def

<script> 
var param=3; 
$('#saveList').append(
'<p>FullName : <input type="text" id="myName"></p>'+ 
'<p><input type="button" value="SAVE" onClick="save_order('+ param +',document.getElementById(\'myName\').value)"></p>'); 
</script> 

你可以这样做,或只是使用双引号,应该工作了。内码内码

拥有的代码实际上只是乞求报价的问题,说实话。相反,堆叠在彼此顶部的这些语言,使用您已经使用,为您的新元素单击处理jQuery库。

如果这些添加的元素是唯一的并且可能具有id值,那么我们不妨使用输入按钮的class值。我们将使用data-属性的动态值。事情是这样的:

var param=3; 
$('#saveList').append(
    '<p>FullName : <input type="text" id="myName"></p>'+ 
    '<p><input type="button" class="orderButton" value="SAVE" data-name="myName" data-param="'+ param +'"></p>'); 

jQuery代码能够具有响应任何“命令按钮”一个单一的点击处理程序点击:

$(document).on('click', '.orderButton', function() { 
    var nameElement = $(this).data('name'); 
    var name = $('#' + nameElement).val(); 
    var param = $(this).data('param'); 
    save_order(param, name); 
}); 

保持HTML和JavaScript合理分离,代码变成更清洁,更容易维护。我敢肯定,这可以被相当多的清理,但至少应该足以让你开始。