2017-02-07 2 views
0

Ich benutze jQuery mit node-horseman, um auf eine Seite klicken, und ich basiere mich auf eine data-id, die diese Seite hat, an meine Anwendung zu übergeben suchen sie nach dem li Tag mit diesem Attribut:Kann nicht .find() Tag nach der Verwendung von .attr()

jQuery('#manage-alerts-div li').attr('data-id', this.feedID) 

Aber ich brauche noch einen Tag in dieser li zu finden, und durch eine .find() danach das Hinzufügen, nur ein leerer Link zurückgegeben wird, und ich kann es nicht sehen, ist HTML-Inhalt .

jQuery('#manage-alerts-div li').attr('data-id', this.feedID).find('.delete_button').click() 
+1

versuchen, diese jQuery ('# verwalten-Benachrichtigungen-div li [data-id = this.feedID]'). ('.delete_button'). click(); – m87

+1

Sie fügen das Attribut hinzu, ohne es auszuwählen. –

+0

* ProTip * benutze * Daten * api, um 'data- *': $ ('# manage-alerts-div li'). Data ('id', this.feedID) zu setzen. Sie sagen auch, dass Sie keinen HTML-Inhalt bekommen können, aber Sie rufen '.click()' auf, was Klickereignis auslöst. – Justinas

Antwort

3

Dieser Code funktioniert ::

jQuery('#manage-alerts-div li[data-id="' + this.feedID + '"]').find('.delete_button').click(); 
+0

Zumindest zitieren Sie die 'Daten-ID' !!! '[daten-id =" '+ this.feedID +' "] '' !!! –

+0

@Rana IHi, es gibt 'undefined' zurück, wenn ich versuche' .html() 'it – mfgabriel92

+0

@ibrahimmahrir Die Zitate sind nicht unbedingt notwendig. Es funktioniert gut ohne sie. –

2

Die jQuery Methode end() Beschreibung: Beenden der letzten Filteroperation in der aktuellen Kette und gibt den Satz von abgestimmten Elementen in den vorherigen Zustand.

könnten Sie die Methode jQuery verwenden end() wie:

jQuery('#manage-alerts-div li').attr('data-id', this.feedID).end().find('.delete_button').click(); 
______________________________________________________________^^^^^ 

Wenn Sie mit dem data-id suchen möchten, dann können Sie verwenden:

$('#manage-alerts-div li[data-id='+this.feedID+']').find('.delete_button').click(); 

Hoffnung, das hilft. finden

$('.delete_button').click(function(){ 
 
    console.log($(this).closest('li')[0].outerHTML); 
 
}) 
 

 
var feedId = 20; //Should be 'this.feedID' in your case 
 
$('#manage-alerts-div li[data-id='+feedId+']').find('.delete_button').click();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<ul id='manage-alerts-div'> 
 
    <li data-id='10'>Text 1 <button class='delete_button'>delete button 1</button></li> 
 
    <li data-id='20'>Text 2 <button class='delete_button'>delete button 2</button></li> 
 
    <li data-id='30'>Text 3 <button class='delete_button'>delete button 3</button></li> 
 
</ul>

+0

elegante Lösung, wusste nicht, thx – Kaddath

+0

nicht Es verwirft '$ ('# manage-alerts-div li')' nach der Verwendung von '.end()'? – Justinas

+0

Der Vorschlag hat leider nicht funktioniert. Es klickt auf alle '.delete_button' auf der Seite. – mfgabriel92

Verwandte Themen