2017-01-04 2 views
1

baue ich eine Methode, die mir erlauben, durch den Benutzer, so etwas wie dies das geklickt Element zurück:Wie bekomme ich div durch?

$('#button2').on('mouseover', function() 
{ 
    console.log(this); 
} 

diese Rückkehr:

<tr id="res-7" class="entry border-bottom" rel="popover" data-original-title="" title=""> 
    <td style="padding-left: 10px"> 
     <div class="name"><strong>Test</strong></div> 
     <div class="description">Foo</div> 
    </td> 
</tr> 

im Wesentlichen ist mein Ziel name den Inhalt div bekommen und div description, könnte jemand erklären, wie man das macht? Vielen Dank.

+0

Sie sagen klicken, aber Sie haben mouseover. Welches ist es? –

Antwort

1

Etwas wie folgt aus: jsfiddle

$(document).on("mouseover","tr", function(){ 

var name = $(this).find(".name").text(); 
var description = $(this).find(".description").text(); 
console.log("Name: "+name+"\nDecsription: "+description); 

}) 

Nicht-ID jedes Element vergessen muss eindeutig sein, so ist der Code nicht korrekt, weil "# button2" muss eindeutig sein, so ist dies immer # button2 in Ihrem Funktion.

Beachten Sie den Unterschied zwischen text() und html(). Ich habe .text() verwendet, um nur den Text ohne "starken" Code zu erhalten. Wenn Sie es brauchen, verwenden Sie html().

-1

Ich bin sicher, es gibt einen saubereren Weg, aber das sollte Sie bekommen, was Sie wollen.

$('#button2').on('mouseover', function() 
{ 
    console.log($(this).find(".name").html()); 
    console.log($(this).find(".description")).html()); 
} 
0

Da Sie bereits ein id auf Ihrem Elemente haben, ist die name und description Attribute Zugriff einfach:

$('#button2').on('mouseover', function() { 
    var $res7 = $('#res-7'); 

    // Access the two divs 
    var name = $res7.find('.name').text(); // or .html() 
    var description = $res7.find('.description').text(); // or .html() 

    // Print them out 
    console.log(name); 
    console.log(description); 
}); 

Natürlich ist dieser Code-Block in einer jQuery ready Ereignishandler sein sollte.

1

könnten Sie innerHTML- verwenden

$(this).find('name').innerHTML; //returns "test" 
$(this).find('description').innerHTML; //returns "foo" 

Dies wird die Klasse innerhalb des aktuellen Elements finden, und geben die Werte, die Sie benötigen.

Verwandte Themen