2016-08-05 4 views
0

Aus Gründen der W3C-Validierung null ist ich brauche von allen Ankern Zielattribut zu entfernen, wo Zielwert null istich brauche Zielattribut von Anker zu löschen, wenn ihr Wert

i innerhalb des Körpers folgenden Code hatte

<div> 
<a href="#" target="">home emput</a> 
<a href="#" target="blank">home</a> 
<a href="#" target="">home empty</a> 
<a href="#">home</a> 
</div> 
Hier

ist mein Skript

$(document).ready(function() { 
    var target = [] 
    var i = 0; 
    $("body a").each(function() { 
    target[i++] = $(this).attr("target"); 
    if($(this).attr("target") == ""){ 
    $(this).removeAttr("target"); 
    } 
    }); 
console.log(target); 
}); 

Dieser Code funktioniert gut, wenn ich Konsole anzeigen leer Ziele entfernt werden. Aber wenn ich die Quelle sehe (Strg + u), sind die Ziele immer noch da,

Ich möchte nur sie löschen.

+0

'$ arbeiten (‘ a [href = ""] '). removeAttr (' Ziel ') '. – Tushar

+0

Ja! Seitenquelle zeigt immer noch, möglicherweise wird dies hilfreich und mögliche Duplikate von http://stackoverflow.com/questions/21021488/deeleting-completely-a-html-element/#answer-21021533 –

+0

Die Quelle wird nicht ändern, da es ist die "Quelle", aber wenn Sie innerhalb der Konsole überprüfen, werden Sie sehen, dass es entfernt wurde. – Gar

Antwort

1

das Versuchen, seine

$(document).ready(function() { 
 
    var target = [] 
 
    var i = 0; 
 
    $("body a").each(function() { 
 
    target = $(this).attr("target"); 
 
    if(target == "") 
 
    { 
 
    $(this).removeAttr("target"); 
 
    } 
 
    }); 
 
//console.log(target); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
<a href="#" target="">home emput</a> 
 
<a href="#" target="blank">home</a> 
 
<a href="#" target="">home empty</a> 
 
<a href="#">home</a> 
 
</div>

1

versuchen, dies ..

$('a[target=""]').removeAttr('target'); 

zu entfernen, aber Sie können diese unter Berücksichtigung W3 Validation nicht erreichen, greift es Seiteninhalt ohne JS ausgeführt wird, so ist die beste Praxis, es zu verbergen serverseitige Skript (PHP) .

1

Wie Sie mit "$" sind, ich nehme an, Sie haben jQuery

$("a[target='']").each(function() { 
    $(this).removeAttr("target"); 
}); 

https://jsfiddle.net/6g6t60pa/

Verwandte Themen