0

2番目のdivのボタンにも共通するボタンに1つのクラスを使用しているjQuery関数を作成しています。私のhtmlマークアップは

  <div class="micmstabs miindex">
     <h4>Manage Your Index Page Here</h4>
        <textarea  class="redactor_content" name="content" rows="4"><?php cms_html('index'); ?></textarea> 
         <a href="#" data-dismiss="modal" class="cms_s index_save btn btn-primary">Save Changes</a>  
  </div>

  <div class="micmstabs miterms">
     <h4>Manage Your Terms & Conditions Page Here</h4>
        <textarea  class="redactor_content" name="content" rows="4"><?php cms_html('terms'); ?></textarea> 
         <a href="#" data-dismiss="modal" class="cms_s terms_save btn btn-primary">Save Changes</a>
  </div>

上記でクリックするcms_sと、jQuery の条件チェックに基づいてテキストエリアの値を取得しようとします。このボタンにこのクラスがある場合、このボタンとテキストエリアがある div のテキストエリアの値を取得します。

私のjQuery関数は

$(document).on('click', '.cms_s', function(event) {
        if ($(this).hasClass('index_save')) {
            var cms_page='index';
            }
        if ($(this).hasClass('terms_save')) {
            var cms_page='terms';
            }   
        if ($(this).hasClass('policy_save')) {
            var cms_page='policy';
            }
        if ($(this).hasClass('mem_save')) {
            var cms_page='membership';
            }
            alert(cms_page);
            var cms_html=$(this).parents("div").find('.redactor_content').val();
            alert(cms_html);


});

クラスの条件チェックを完全に取得できます。しかし、ボタンに基づいてテキストエリアの値を取得しようとすると、クリックしたボタンに関係なく、最初のdivマークアップにあるテキストエリアの値が取得されます。

4

2 に答える 2

2

ボタンを押して、前のテキストボックスの値が必要な場合。これを行う方が簡単です:

$(document).on('click', '.cms_s', function(event) {
     var val = $(this).prev("textbox").val();
     // Or within the same level
     val = $(this).parent().find("textbox").val();
     val = $(this).siblings("textarea").val();
});

すべての入力にクラスredactor_contentがあるため.val()、配列内の最初のテキストエリアを取得してその値を取得するときに問題が発生します。これは常に最初のredactor_content.

var cms_html=$(this).parents("div").find('.redactor_content').val();
于 2013-04-22T15:06:14.980 に答える
1

これを試して -

var cms_html=$(this).closest("div").find('.redactor_content').val();
于 2013-04-22T15:07:22.000 に答える