1

こんにちは、次のように div テーブルに行があります。

<div class="tbody plb" id="impemail">
    <div class="tbc1" style="border-right:none;">
        <input class="tblinput sname pvar" type="text">
        <input type="hidden" class="ppre" value="">
    </div>
    <div class="thc2" style=" width: 75%; border-left:1px dotted #CFCFCF;">
        <textarea class="tblinput semails txtInputta pvar" style="font-size:13px;"></textarea>
        <input type="hidden" class="ppre" value="">
        <div class="errmsg emailerr"></div>
    </div>
    <div class="hideRow" style="width:20px;float:right;padding:15px 0px 0px 0px;">
        <img src="../../../images/redcross.png" alt="" />
    </div>
</div>

そして、次のようにjQuery関数を使用してクラス「hideRow」をクリックすると、この行を削除する関数を作成しようとしました。ここでは、hideRow関数が実行されている間に入力フィールドとテキストエリアフィールドをクリアしたいので、ページをリフレッシュした後値が行に存在してはなりません。私が試したjQuery関数は次のとおりです。

 $(function () {
     // Delete row from PTC grid 
     $('.hideRow').live("click", function () {
         $(this).parents('.plb').hide("slow", function () {
             $(this).parents('.tblinput sname pvar').val('');
             $(this).parents('.tblinput semails txtInputta pvar').val('');
         });
     })
 });

ページのリロード後にこれらの値が存在しないように、これら 2 つのフィールドをクリアする方法を教えてください。

4

2 に答える 2

6

次のようにセレクターを変更します。

$(this).parents('.tblinput.sname.pvar').val('');
$(this).parents('.tblinput.semails.txtInputta.pvar').val('');

要素の複数のes の場合、上記のようにそれらの間でセレクターを作成するためにスペースを使用せずにそれらの名前をclass結合する必要があります。classdot(.)


セレクターは何をしていますか

あなたのセレクター.tblinput sname pvardescendant selectorフォーマットです。これは、2 番目のanspvar内で同じものを検索することを意味し ます。snamesnametblinput


関連参照:


コメントによると

$(function () {
     // Delete row from PTC grid 
     $('.hideRow').live("click", function () {
         $(this).closest('.plb').hide("slow", function () {
           $(this).find('.tblinput.sname.pvar, .tblinput.semails.txtInputta.pvar').val('');
         });
     })
 });
于 2012-09-13T07:24:46.087 に答える
0

あなたの主な問題は、 のコールバック内で.hide()、 の値thisが非表示の要素を参照することです。正しいトラバーサル テクニックは.find()のとおりです$(this).find('.tblinput.sname.pvar').val('');

Javascript

 $(function () {
     // Delete row from PTC grid

     // .live() is deprecated, port to .on()
     $('.hideRow').live("click", function () {

         //use .closest() instead of .parents() - less traversing
         $(this).closest('.plb').hide("slow", function () {

             // search down, not up - and no space between class selectors
             $(this).find('.tblinput.sname.pvar').val('');
             $(this).find('.tblinput.semails.txtInputta.pvar').val('');
         });
     })
 });
于 2012-09-13T07:40:57.707 に答える