Javascript 单击按钮获取父项';s每个函数中的文本值 功能myFun(ele){ ele.each(函数(){ var org=$(this.text(); $(document).delegate('.c','click',function(){ $(this.parent().append(org); }); }); } $(文档).ready(函数(e){ myFun($('.text')); }); 12345678910+ abcdefghijklmnopq+
我有一个测试函数,当“+”按钮点击时,它会附加父文本 如果我点击第一个,它会附加123 如果我点击第二个应该附加abc 现在发生的是这一切。。。abc 如何仅附加父级文本您需要执行以下操作:Javascript 单击按钮获取父项';s每个函数中的文本值 功能myFun(ele){ ele.each(函数(){ var org=$(this.text(); $(document).delegate('.c','click',function(){ $(this.parent().append(org); }); }); } $(文档).ready(函数(e){ myFun($('.text')); }); 12345678910+ abcdefghijklmnopq+,javascript,jquery,Javascript,Jquery,我有一个测试函数,当“+”按钮点击时,它会附加父文本 如果我点击第一个,它会附加123 如果我点击第二个应该附加abc 现在发生的是这一切。。。abc 如何仅附加父级文本您需要执行以下操作: <script> function myFun(ele){ ele.each(function(){ var org = $(this).text(); $(document).delegate('.c','click',function(
<script>
function myFun(ele){
ele.each(function(){
var org = $(this).text();
$(document).delegate('.c','click',function(){
$(this).parent().append(org);
});
});
}
$(document).ready(function(e) {
myFun($('.text'));
});
</script>
<p class="text">12345678910<span class="c"> +</span></p>
<p class="text">abcdefghijklmnopq<span class="c"> +</span></p>
注意,按照当前的绑定方式,实际上是将两个事件绑定到每个.c类。您正在遍历所有.text类,并绑定到.c。因为有两个绑定,所以在单击时会得到两个绑定、两个处理程序和两个执行。根据您的示例,JSFIDLE是否已更新
$('.c').click(function () {
$(this).append($(this).parent().text());
});
这里假设您只希望复制文本,而不希望复制子
span
代码的问题是,对于每个“.text”,您将调用“$(document).delegate(“.c”、“click”、…”两次(对于每个“.c”),这将导致两个click处理程序附加到每个“.c” 要更正此问题,您需要使用如下查找函数将单击处理程序仅附加到当前“.text”中的“.c”:
$(".text").on("click", ".c", function () {
var parentText = $(this).parent(".text").clone().children().remove().end().text().trim();
$(this).prepend(parentText);
});
为什么要使用
$(document).delegate('.c','click',function()){
在每个?您只需要绑定事件一次..这应该超出您的。每个
循环我使用委托的原因是,因为我将使用jquery加载另一个页面,我将需要此函数用于另一个页面Too在附加父级文本时是否要包含+
要显示的文本,在跨度标记之后和结束段落标记之前?当您多次单击时会发生什么情况?
$(".text").on("click", ".c", function () {
var parentText = $(this).parent(".text").clone().children().remove().end().text().trim();
$(this).prepend(parentText);
});
function myFun(ele){
ele.each(function(){
var org = $(this).text();
$(this).find('.c').click(function(){
$(this).parent().append(org);
});
});
}