0

クリックされた要素の2番目の祖先を取得するには?

何も返さない: $(this).parent().parent().find('.TITLE'), $(this).closest('.TITLE').text()

次のコードを参照します。

<div class="ELEMENT_LISTY" style="display:none">
<div class="TITLE" id="id_196">sadfsfsdfgds</div>
<div class="BUTTONY PRE">
<div class="POGLAD"></div>
<div class="ZMIEN_NAZWE"></div>
<div class="USUN"></div>
</div>
</div>

function przygotuj_ZmianeNazwy() {
    $(".PRE .ZMIEN_NAZWE,.NEW .ZMIEN_NAZWE").click(function() {

        $("#DIALOG3").dialog({
            resizable: false,
            width: 500,
            modal: true,
            show: 'scale', 
            hide: 'puff',
            buttons: {
                "Dodaj": function() {
                    var el = $("#input_ZmienNazwe").val();
                    if(el !== '' && el !== null) {
                        $(this).dialog("close");
                        var title = $(this).closest('.TITLE').text() // I AM CLICKING ON ELEMENT AMONG MANY, WANT TO SELECT ANCESTOR TEXT FROM THIS I CLICKED ON
                        alert(title);
                        //ajax_zmienNazwe(title);
                    }
                },
                "Anuluj": function() {
                    $(this).dialog("close");
                    $("#input_ZmienNazwe").blur();
                }
            }
        });
        document.getElementById("input_ZmienNazwe").focus();
    });
4

1 に答える 1

3

ここで動作する jsFiddle を作成しましたhttp://jsfiddle.net/stJHG/1/。コードを次のように適合させる必要があります。

$(".PRE .ZMIEN_NAZWE,.NEW .ZMIEN_NAZWE").click(function() {
    alert($(this).closest('.ELEMENT_LISTY').find('.TITLE').text());        
});​

.TITLEは実際には要素の祖先ではありませんが.ZMIEN_NAZWE.TITLE共通の祖先は です.ELEMENT_LISTY。したがって、これを選択してから、その子を検索する必要があります.TITLE

(また、あなたがいる場所にあなたがいたとは思いません。style="display:none"クリック可能な要素も隠されていました)

于 2012-10-18T21:04:14.513 に答える