使用$(this)调用动态创建的元素
Calling dynamically created element with $(this)
我正试图通过$(this)调用一个动态创建的元素,这可能吗?
例如:
$(".el").on("click",function(){
$("body").append("<div class='new'></div>");
// call class .new via $(this)
});
是否可以从$(".el")调用class.new或者从另一个函数的$(".new")调用$(".el")
在不调用其他函数的情况下,重新分配this
是不可能的。无论如何,最好缓存元素,将其保存在变量中。您可以使用以下代码:
$(".el").on("click",function(){
var $el = $("<div class='new'></div>").appendTo('body');
// $el will be $('.new') and you can call jQuery function like that
// $el.addClass('work');
});
此时无法重新分配this
,但您可以在创建新元素时将其分配给变量。这样,您可以简单地使用新变量而不是关键字this。
$(".el").on("click",function(){
var newEl = $('<div class="new"></div>');
$("body").append(newEl);
});
另一方面,您可以在另一个函数中将新元素用作this
。要执行此操作,请使用call
或apply
函数。
someFunc.call(newEl); // Makes newEl become this inside the function
var someFunc = function(){
// this is now newEl within this scope
}
$('.el').on('click',function(){
var mynewdiv = $('<div class="new"></div>');
$('body').append(mynewdiv);
//mynewdiv is your dynamically created element.
});
或
$('.el').on('click',function(){
var UniqueId = '_id'+ new Date().valueOf();
$('body').append('<div class="new" data-id="'+UniqueId+'"></div>');
// $('[data-id='+UniqueId+']') is your created element.
});
相关文章:
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 在动态创建的元素上获取对特定选择器的引用
- JQuery对动态创建的对象进行选择
- 使用jquery动态创建ul-li
- 从动态创建的html选择中选择所选选项
- 如何在动态创建的节点上绑定函数
- 动态创建OnClick事件Javascript
- 谷歌地图动态创建的标记点击事件使用相同的标记
- 在动态创建的标记上添加事件
- 动态创建一个javascript/jquery多级数组
- 如何动态创建许多Jquery颜色选择器(eyecon)
- 如何为动态创建的文本区域中输入的值更新ng模型
- 对动态创建的元素运行jQuery.ech()
- 使用jQuery访问动态创建的项
- 动态创建的iframe中的window.onerror在lne 0处给出脚本错误
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 我想将链接关联到动态创建的p元素上的相应文章
- AngularJs从列表中动态创建指令
- 使用javascript动态创建html内容/元素