• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Ein Div aligen entfernen

drsaw

New member
Huhu und schön hier zusein,
Ist es möglich dieses Div align weg zukriegen " ist markiert"
HTML:
<tr id="mainlayouttabletop">
<td>
<div align="center" style="height:110px;
width:100%; background: url('newdesign/logo_hybrid.png') no-repeat;
background-color: #000000; background-position: center top;">
----->  <div align="center" style="background: url('newdesign/tail_row_menu.gif') repeat-x scroll 0 0 #141414; border-bottom: 1px solid #000000; width:100%;">
</td>
Ich arbeite mit FireFox Greasemonkey

Vorab JS code

JavaScript-Quellcode

PHP:
   var divs = document.getElementsByTagName("div");
    for (i=0; i < divs.length; i++) {
    if (divs[i].className == "beispiel" && configbeispiel) {
    divs[i].innerHTML = '';
    }
    }


Danke schonmal
 
Zuletzt bearbeitet:
Danke für den Hinweis, hab ich gleich beseitigt.

Es ist ein "defektes*" Werbebanner. Der stört mich, und den würde ich gerne Clientseitig entfernen.


*wird nicht immer richtig angezeigt.
 
Hi,

eventuell kannst du das DIV über das background-image im style-Attribut referenzieren und entfernen.
Code:
var divs = document.getElementsByTagName('div'),
    _key;

for(_key in divs){
    if(divs.hasOwnProperty(_key)){
        var style = divs[_key].getAttribute ? divs[_key].getAttribute('style') : undefined;
        
        if(style && /tail_row_menu\.gif/.test(style)){
            divs[_key].parentNode.removeChild(divs[_key]);
        }
    }
}
Ciao
Quaese
 
@Quaese: for...in ist "bad practice" - benutzen sollte man das ausschließlich(!) für echte Objekte.

Danke für den Hinweis, hab ich gleich beseitigt.
Weiß ich jetzt nicht, was ich davon halten soll - du entfernst ja dennoch illegalerweise das Copyright; egal ob es jetzt oben im Testskript anders ist...
 
@j-l-n - und wer gibt vor, was "bad practice" ist?

Weiterhin handelt es sich bei der Rückgabe von getElementsByTagName nicht um ein reines Array sondern um eine Nodelist/Collection. Ist das ein Objekt?

Aber es geht ja auch in einer for-Schleife:
Code:
var divs = document.getElementsByTagName('div'),
    _key;

for(_key=0; _key<divs.length; _key++){
    var style = divs[_key].getAttribute('style');
    
    if(style && /tail_row_menu\.gif/.test(style)){
        //console.log("Treffer: ", divs[_key]);
        divs[_key].parentNode.removeChild(divs[_key]);
    }
}
Ciao
Quaese
 
Das geht viel einfacher:
Code:
Array.prototype.slice.call(
	document.querySelectorAll("div[style*=tail_row_menu.gif]")
).forEach(function(div){
	div.parentNode.removeChild(div);
});

@quaese: dein Script funktioniert nicht in allen Situationen, da divs eine HTMLCollection ist und deswegen live. Deswegen werden Elemente, die du aus dem DOM entfernst auch aus der Collection entfernt und du überspringst ein Element.
 
@kkapsner
Der Selektor für das style-Attribut in querySelectorAll muss in Quotes gesetzt werden, da er einen Punkt enthält.
Code:
document.querySelectorAll("div[style*='tail_row_menu.gif']")

Ciao
Quaese
 
Stimmt - wobei ich da den Sinn der Spezifikation nicht ganz verstehe... eigentlich könnte man ja jedes Zeichen außer dem ] verwenden, denn nur dieses beendet den Attributselektor. Aber man muss ja nicht imme alles 100%ig verstehen.
 
@klapsner
Sieht so aus, als würde mit regulären Ausdrücken gesucht werden, denn
Code:
document.querySelectorAll("div[style*=tail_row_menu\\\.gif]")
funktioniert auch.

Ciao
Quaese
 
Der Ansatz von TecEye bringt mich auf die Idee, dass man das Ganze auch mit Stylish oder einem AdBlocker realisieren könnte. Also einfach über den Selektor, den ich bzw. Quaese vorgeschlagen hat, das Element ansprechen und in Stylish ein CSS mit display: none definieren bzw. in einem AdBlocker das Element über den Selektor "blockieren".

@Quaese: Funktioniert das in allen Browsern? In welchen hast du das getestet? Mir ist nämlich eigentlich nichts bekannt, dass da irgendwas mit RegExp läuft - lasse mich aber gerne eines anderen belehren... wäre ja auch viel flexibler.
 
@kkapsner: Getestet habe ich das im FF 32, Chrome 38 und IE 11 und in allen funktionert der Selektor mit dem maskierten Punkt.

Ciao
Quaese
 
OK - das ist im Standard drin. Die Werte dürfen da CSS-Identifier (Syntax and basic data types ) oder Strings sein. Und "verbotene" Zeichen in den Identifier kann man maskieren. Hat also (leider) nichts mit RegExp zu tun.

Und dass in einem Identifier kein Punkt vorkommen darf, ist verständlich.
 
Zurück
Oben