生成的输出如下: HTML
<div id="resultCancel" class="error" style="display: block;">
<a class="close">X</a>
<ul style="">
<li for="ProductId" generated="true" class="error" style="">Please Enter License Key</li>
</ul>
</div>
当你点击a.close时我需要清空li的内容(在任何人杀死我之前,我们使用旧的代码库,这就是我使用.live功能的原因)
$('a.close').live('click',function(){
$(this).parent().fadeOut("fast");
$(this).closest//.next//.sibling('ul').addClass('foo');
});
通过使用最接近我可以上DOM树,我需要下去。 .next和.sibling没有效果....如果重要的话,div#resultCancel是由jQuery验证插件触发的。
答案 0 :(得分:2)
您可以使用.next()
$this.next('ul').find('li.error').addClass('foo').html('Text Changed!!')
使用.on()
代替.live()
,因为后者已弃用 ..
$('a.close').on('click',function(){
var $this = $(this);
//$this.parent().fadeOut("fast");
$this.next('ul').find('li.error').addClass('foo').html('Text Changed!!')
});
您还需not change the text
hiding the parent div
。
<强> Check Fiddle 强>
对于动态元素委派活动
$('body').on('click','a.close',function(){ // jQuery > 1.7.0
$('body').delegate('a.close' ,'click',function(){ // jQuery < 1.7.0