-1

以下の表をレンダリングしました

   <table id="layout" width="100%" border="0" cellspacing="6" cellpadding="0">
        <tr>
           <td>
             <div style="position: static;" class="type_normal type_common" title="33">33</div>
           </td>
           <td>
             <div style="position: static;" class="type_selected ticket_type_common" title="34">33</div>
           </td>
        </tr>
   </table>

私の要件は、特定のセルをクリックすることです.divタグの値とクラスが必要です。

        $("#layout").delegate('tr td','click',function(){
            var seat_selected=$(this).text();
            seat_selected=$(this).html();
            }
        });

$(this).text を使用すると、33 という数値が得られます。$(this).html() を使用すると、td 内のセクション全体が得られます (div 全体を取得します)。しかし、divタグのクラスだけが欲しいです。divタグのクラス名を変数に取得する手順は?

私の要件は、div タグで特定のクラスを確認し、div タグを別のクラスに変更することです。たとえば、クリックしたセルに class (type_normal type_common) の div タグがあった場合、div タグのクラスを (type_selected type_common) に変更したい

ご意見をお聞かせください。

4

4 に答える 4

1

次のメソッドでクラス名を取得できます。

var classOfDiv = $(this).find('div').attr('class');

あなたのコードは

$("#layout").delegate('tr td', 'click', function() {
        var seat_selected = $(this).text();
        seat_selected = $(this).html();
        var classOfDiv = $(this).find('div').attr('class'); 
        if($(this).find('div').attr('class') == "type_normal type_common")
            $(this).find('div').attr('class', 'type_selected type_common')
});
于 2012-09-18T15:47:53.133 に答える
0
$("#layout").on('click', 'tr td', function() {
    var seat_selected = $(this).children(":first").attr('class')
    alert(seat_selected)
});

ここでテストしてください: http://jsfiddle.net/RASG/mqLfd/

于 2012-09-18T16:05:24.647 に答える
0
$(this).find('div').attr('class')
于 2012-09-18T15:48:34.873 に答える
0

clickイベント ハンドラのコールバック関数でthis、要素を参照し<td>ます。その後、jQuery 関数を使用して.find()、特定のセレクターに一致するその要素内の要素を選択できます。あなたの場合、それは次のようになります。

var $tdDiv = $(this).find('div');

<div>これにより、内の要素を含む jQuery オブジェクトが得られ<td>、プロパティを使用しclassNameて現在のクラスを取得できます。

var divClass = $tdDiv.prop('className');

次に、.text()関数を使用してその「値」を取得できます。

var divValue = $tdDiv.text();

編集:質問に追加された追加情報に基づいて、特にこの部分:

私の要件は、div タグで特定のクラスを確認し、div タグを別のクラスに変更することです。たとえば、クリックしたセルに class (type_normal type_common) の div タグがあった場合、div タグのクラスを (type_selected type_common) に変更したい

この.hasClass()関数を使用して、jQuery オブジェクトの要素に特定のクラスがあるかどうかを確認したり、addClass()クラスを追加する関数とクラスremoveClass()を削除する関数を使用toggleClass()したりできます (または、クラスが既に存在するかどうかに応じて、追加または削除するために使用します)。エレメント上)。

var $tdDiv = $(this).find('div.type_common.type_normal')
$tdDiv.removeClass('type_normal').addClass('type_selected');
于 2012-09-18T15:48:42.233 に答える