jQuery - css-Stil Anwenden, um input-element
Ich versuche alle links auf einmal prüfen und ändern Sie die Hintergrundfarbe der broken-links-Feld.
Hier ist meine Funktion
function CheckLinks(){
$('#new_post_links_table tbody>tr').find("input").each(function() {
UrlExists($(this).val(), function(status){
if(status === 404){
$(this).css('background-color','#FC0');
}
}); });}
Input-Felder sieht wie folgt aus :
<table id="new_post_links_table">
...
<td><input type="text" name="mp3_link[]"/></td>
<td><input type="text" name="mp4_link[]"/></td>
</tr>
</tbody>
</table>
Aus irgendeinem Grund die css nicht anwenden.
Hinweis: meine Haltearme Funktion funktioniert, außer die $(this).css...
Teil. (FireBug, ' ed)
Hinweis: Die Zeilen werden dynamisch Hinzugefügt
EDIT : Hier ist die Funktion:
function UrlExists(url, cb){
jQuery.ajax({
url: url,
dataType: 'text',
type: 'GET',
complete: function(xhr){
if(typeof cb === 'function')
cb.apply(this, [xhr.status]);
}
});
}
Versuchen
Nein, der erste parameter Ihrer
Funktioniert immer noch nicht...
Dann ist es ein Verweis-Problem. Ihre inneren
$(this).val()
.Nein, der erste parameter Ihrer
UrlExists()
Funktion hat $(this).val
, wenn es haben sollte $(this).val()
.Funktioniert immer noch nicht...
Dann ist es ein Verweis-Problem. Ihre inneren
this
ist nicht zugeordnet, das element, das derzeit getestet.InformationsquelleAutor xperator | 2012-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Paar Dinge falsch. Sie enthält nicht das
()
auf den Anruf zu$(this).val
, und Ihrethis
Referenz innerhalb der Rückruf bezieht sich nicht auf das element bestimmt.Halten Sie im Verstand, wenn Sie dies tun vielleicht laufen einige Tücken mit
Access-Control-Allow-Origin
.Möchten Sie vielleicht ändern Sie Ihre
UrlExists
- Funktion, die über einen proxy-Skript auf deinem server. Sie könnten etwas tun, wie die folgenden:Auf dem backend, testen Sie die URL und senden Sie die Antwort via JSON:
Diese Weise Ihre JavaScript kommuniziert mit Ihren back-end, und hat kein problem mit origin Kontrolle.
Sie können nicht nur zufällige Treffer-URLs mit JavaScript. Die urls, die Sie versuchen zu testen?
Sie sind auf dem gleichen server. Sie sehen aus wie diese
http://www.dl.mysite.com/momeni/momeni-09.mp3
ich nginx + ISPConfig.www.dl.mysite
behandelt wird als eine andere Website in ISPConfig und das Skript, das ich bin versucht, inmysite.com/at-admin
So effektiv Sie sind auf zwei verschiedenen domains. Der browser kann nicht wissen, dass Sie "physisch" auf dem gleichen Gerät
Ich als angenommen markiert Antwort für die Zeit. Da Css-problem ist gelöst. Jetzt ist das url-Problem bezieht sich auf back-end. Ich brauche einige Zeit, um zu Graben. Vielen Dank, du gibst zu viel info auf dieses 🙂
InformationsquelleAutor Sampson
Mein Gefühl ist, dass dies nicht mehr bezogen auf den Eingang. Sollten Sie eine variable zum speichern der Eingabe, so dass Sie zugreifen können es innerhalb von Schließung
Dann sollten Sie endlich aussetzen der UrlExists () - Funktion zu uns 🙂
Möchten Sie vielleicht nach etwas, was, so können wir check it out! 🙂
Ausgesetzt ^_^ sorry für die Verspätung
Sieht immer noch wie ein Verweis-Problem zu mir.
InformationsquelleAutor Peter Lada
Bedeutet, dass die Funktion wissen, dass es hinzugefügten Zeilen dynamisch? Vor einiger Zeit habe ich ähnliches Problem. Problem war, dass jQuery nicht wissen, dass es neue Zeilen mit etwas Inhalt. Versuchen Sie, die Konsole aus was ist unter $(this) in der Funktion und sagen Sie uns, was für ein Ergebnis hast Du bekommen.
InformationsquelleAutor Rob