0

生成される出力は次のとおりです。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検証プラグインによってトリガーされます。

4

1 に答える 1

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

フィドルをチェック

動的要素の場合、イベントを委任します

$('body').on('click','a.close',function(){  // jQuery > 1.7.0

$('body').delegate('a.close' ,'click',function(){  // jQuery < 1.7.0
于 2012-12-12T21:41:11.803 に答える