2016-11-22 37 views
0

In Ordnung, also versuche ich etwas einfaches zu erreichen, aber es scheint, dass es nicht richtig funktioniert. Ich versuche im Grunde, den Wert der Klasse, die in der Schriftart ist, ein großartiges Symbol zu bekommen.Element in einem Element erhalten

Nun, da es viele tolle Ausgaben wie diese gibt, muss ich diejenige finden, auf die ich geklickt habe. Das Problem, dem ich jetzt gegenüberstehe, ist einfach, es gibt den Wert nicht zurück. Es gibt nur einen leeren Alarm zurück.

$(".fa-trash-o").click(function() { 
    var id = $(this,".row_id").val(); 
    var table = $(".table_name").text(); 
    alert(id); 
}); 

Antwort

0

Zum einen die kontextuelle Selektor Sie verwenden ist für in einem anderen ein Element zu finden, doch die p ist kein Kind des i, so wird es nicht gefunden werden. Stattdessen könnten Sie siblings() verwenden.

Zweitens wird val() auf Formularelementen verwendet, um ihren Wert zu erhalten. Elemente haben keinen Wert. Vermutlich willst du den Text bekommen, also brauchst du statt dessen text(). Versuchen Sie folgendes:

$(".fa-trash-o").click(function() { 
    var id = $(this).siblings('.row_id').text(); 
    var table = $(".table_name").text(); 
    alert(id); 
}); 
+0

Warum nicht '.next()'? –

+1

'next()', 'siblings()' ... viele Möglichkeiten, eine Katze zu häuten. –

+0

Das nächste Mal redest du über das Häuten einer Katze, mit der du beschäftigt bist. Sagen Sie "Hund" nicht "Katze"! ': D' –

1

Sie haben siblings() oder next() in diesem Zusammenhang zu verwenden, nicht find(),

$(".fa-trash-o").click(function() { 
var id = $(this).next(".row_id").text(); 
alert(id); 
}); 

Auch .val() ist für die Eingabe Formularelemente, es wird intern für die .value Eigenschaft suchen. Also müssen wir stattdessen .text() verwenden.

FYI: $(this, "selector") ist ähnlich $(this).find('selector')

0

var id = $(this,".row_id").val(); macht keinen Sinn und Absätze haben keinen Wert

Das Element, das Sie wollen, ist ein Geschwister so sollten Sie next() und text() verwendet werden.

$(this).next().text() 

oder

var id = $(this).siblings(".row_id").text(); 
var table = $(this).siblings(".table_name").text(); 
1

So ist die row_id Klasse ist technisch nicht in der es aber ein Geschwister davon, würden Sie wollen, es so zielen:

$(this).next('.row_id).text(); 
$(this).next('.table_name).text(); 

Da sie beide <p>-Tags sind, sollten Sie schnappen Sie sich die .text oder .html, .val() funktioniert nur auf Formularelemente wie ein Eingang oder Textbereich

Verwandte Themen