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マークアップにあるテキストエリアの値が取得されます。