jquery 函数不适用于通过 innerHTML 写入的元素
jquery function doesn't work on element that write through innerHTML
我有一些jQuery代码是这样的:
$(function($) {
$('input.autonumeric').autoNumeric({aSep: ',', aDec: '.',vMax:'1000000000000'}); });
使用该代码,每个具有 -class autonumeric
输入文本只能使用数字输入。
但是当我从innerHTML
写入输入文本标签时,它根本不起作用。 这是我编写代码的方式:
function edit(){
var current = window.event.srcElement;
while ( (current = current.parentElement) && current.tagName !="TR");
var row = current.childNodes;
td = row.item(0); var temp = td.innerHTML;
td.innerHTML = "<input type='"text'" value='""+temp+"'" class='"autonumeric'" '>";
}
如何解决此代码? 注意:如果我的英语不够好,我很抱歉。
您
还必须为新添加的元素运行autoNumer。您可以在创建新输入时执行此操作,如下所示:
$(td).html($("<input type='"text'" value='""+temp+"'" class='"autonumeric'" '>").autoNumeric({'....'}));
或离开您的版本并运行
$('input.autonumeric').autoNumeric({aSep: ',', aDec: '.',vMax:'1000000000000'}); });
之后再次。
当 jQuery 插件方法.autoNumeric(...)
运行时,它会影响 DOM 中当前存在的所有输入字段。调用edit()
并创建新input.autonumeric
时,必须再次调用.autonumeric(...)
。
添加 innerHTML 后,您应该再次调用 autoNumeric 函数。这是因为在页面加载时执行的代码只能在页面加载时"看到"DOM 中存在的元素。添加元素后,您必须将事件附加到该元素。
既然你已经在使用 jQuery,为什么不使用 jQuery 创建元素呢?
var e = $('<input type="text" />');
e.autoNumeric({aSep: ',', aDec: '.',vMax:'1000000000000'}); });
td.html(e);
当然,您需要调整代码的另一部分,以确保 td 是 jQuery 对象。
相关文章:
- 使用元素的值与innerHTML
- innerHTML赢得't改变元素
- 如何避免在更改画布元素时清除它's容器's innerHtml
- 与任何元素的 .innerHTML 属性匹配的 JavaScript 正则表达式
- 什么是输入元素上的innerHTML
- 如何通过搜索innerHTML的内容来获取HTML元素
- 如何在单击时切换元素的innerHTML
- 获取包装's的innerHTML,包括用户在输入元素中输入的值
- Protractor:在innerhtml的基础上获取元素
- 将一个元素中的innerHTML替换为另一个具有Javascript的innerHTML
- jquery 函数不适用于通过 innerHTML 写入的元素
- 将元素innerHTML替换为其自身的副本会更改文档高度
- 这个jQuery元素innerHTML语句有什么问题
- 使用Javascript更改HTML元素innerHTML部分的CSS属性
- 谷歌Chrome浏览器不更新iframe元素innerHTML动态变化后,在JavaScript
- 元素.innerHTML不提供完整的数据
- Javascript:元素.innerHTML += "…"重置文件输入'
- JQuery -根据元素innerHTML更改属性
- 关于改变元素InnerHTML的基本Javascript查询
- 获得原始的dom元素innerHTML没有javascript处理