如何向动态创建的 DOM 对象添加文本
How to add text to dynamically created DOM objects?
>假设我有两个按钮"添加链接"和"添加文本"。"添加链接"按钮会自动将以下内容附加到现有页面:
<a href="text.html"></a>
当我单击"添加文本"按钮时,创建的所有动态链接的文本都应包含文本"文本"。
我最初使用"$("a").text("文本")"作为"添加文本"按钮的功能,但它不起作用,因为当用户单击"添加链接"按钮时,链接是动态创建的。
如何使"文本"进入所有动态创建的链接?
注意:像这样的东西
$('buttonforaddtext').live('click', function() {
$("a").text("Text");
});
对我不起作用,因为该按钮一直存在,它是通过单击"添加链接"按钮动态创建的"a"。
尝试如下,正如我在评论中提到的,
$('#addLink').on('click', function () {
$(body).append('<a href="' + someURL + '" class="newLink"></a>');
});
$('#addText').on('click', function () {
$('a.newLink').text('New Link');
});
$('button').on('click', function() {
/* your code */
});
如果你有动态对象,你需要使用.on()
让它工作......
var yourLink = $("<a href="+someURL+">"+yourText+"</a>");
或
var yourLink = $("<a href="+someURL+"/>");
yourLink.html("Text");
然后
yourLink.appendTo($('body'));
如果您希望同时创建@
你描述的对我来说听起来不错。 也许你应该发布你正在使用的代码。 以下方法应该有效:
$('#addLink').click(function(){
$('body').append('<a href="text.html"></a>');
});
$('#addText').click(function(){
$('a').text('Text');
});
只要您的 jQuery 对象 ($('a')) 是在点击事件发生后创建的,一切都应该像您描述的那样工作。
你需要使用'.live'方法,正如我们的同事之前所说。碰巧在您尝试绑定事件的那一刻,该元素不会退出并且不起作用。
使用 .live,窗口将继续侦听您选择的元素。
如果您使用的是 jQuery 1.7.+,我建议您使用 .on() 方法绑定事件,并在不再需要它时使用 .off() 解绑它......
PS.:顺便问一下,你想选择什么?
$('buttonforaddtext')
您的问题可能是 live 已弃用,或者您没有您认为拥有的 HTML。由于您在回调中重新查询文本插入的 A 标记,并且按钮是静态 HTML,因此您不需要"实时"或"委托"或"打开"。只需做一个简单的.click键
相关文章:
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 在Angular中呈现DOM对象时,如何调用控制器中指定的函数
- 不带dom对象的jquery ajaxComplete()
- 从 DOM 数组中删除 DOM 对象
- Raphael JS:如何从 Dom 对象(Element.node)获取 Raphael 元素
- SVG DOM对象间距/重叠
- DOM对象而不是其他DOM对象
- 如何区分DOM对象和JavaScript对象
- 在提取dom对象后,无法将每个名为tab的元素推送到数组中
- M项目2:是否可以从DOM对象中获取M视图
- Javascript关闭DOM对象事件和事件冒泡
- 如何使用jQuery将重复类添加到DOM对象中
- 当请求DOM对象时,XMLHttpRequest.send()抛出异常
- 从非DOM对象内部调度和处理自定义事件
- dom对象创建javascript和jquery后的事件触发器
- 使用Internet Explorer检索XML DOM对象的URI
- 如何将事件绑定到没有DOM对象的函数
- 使用 Aurelia动态创建一个 dom 对象
- 使用 jQuery 操作 DOM 对象
- 使用多个 css 类将 css 转换属性应用于 DOM 对象时遇到问题