Javascript转义字符替换

时间:2018-11-18 16:06:06

标签: javascript html dynamic insert

我正在使用按钮来动态生成表单中的新表行,并且这些行包括带有参数的调用函数。我尝试在添加的行上使用JQuery来触发.blur()事件,就像使用硬编码的第一张表行成功完成的一样,但是页面完全忽略了它。因此,我正在尝试从行HTML内触发onb​​lur()事件的另一种途径。我被函数参数卡住了,因为我要么弄乱了转义字符顺序,要么搞乱了翻译。我已经花了几个小时来尝试对Stack Overflow进行研究,所以希望第二组眼睛能够提供帮助。

以下是相关的代码段。存储的html会附加到我的表格行中,该行已经可以使用了。

var strVar = 'myString';
var rowCount = $("#tbodyID td").closest("tr").length;
var rowNum = rowCount + 1;


var line17 = "<td><input type='number' class='form-control' name='named_qty' onblur='function(" + strVar + ")' id='row_R" + rowNum.toString() + "' /></td> ";

大约有25行需要插入不同的html。我能够使它以前运行,但是意识到一个值是硬编码的,因此我需要它是动态的。它调用的函数接受一个字符串。

当插入HTML文档时,此行通常应显示为:

<td><input type="number" class="form-control" name="named_qty" onblur="function('myString')" id="row_R2" /></td>

1 个答案:

答案 0 :(得分:0)

我做了一些进一步的研究,并意识到我正在使用JQuery blur()方法: $('#id').blur( function() { });并尝试调用这些函数,但没有意识到该方法仅适用于页面加载时已写入DOM的HTML元素。

显然,解决方案是使用JQuery on()方法,如下所示:

$(document).on("blur", '#id', function() {   <insert code> });

在W3Schools中,

  

注意:使用on()方法附加的事件处理程序将同时适用于当前和FUTURE元素(如脚本创建的新元素)。

这消除了将事件函数调用包含在要附加到DOM的HTML行中的必要。