2017-07-21 2 views
0

i-String so etwas wie können sagen habenhinzufügen Breite Attribut in einer Zeichenfolge img

x = '<div class="sample"> 
    <img src="http://www.example.com/i/java.png"> 
</div> 
<div class="sample_another"> 
    <img src="/i/somedir/python.png"> 
</div>' 

ich habe 2 Funktionen mit mir

getHeight() => liefert img Höhe und getwidth() => returns img width

Ich möchte die Breite und das Höhenattribut zu den Img-Tags hinzufügen, deren Wert ich von diesen Funktionen bekommen kann. Ich konnte keine Regex dafür finden, also dachte ich eher an einen allgemeinen Ansatz.

Das ist, was ich mit so weit

var string ="<img alt='' src='http://api.com/images/UID' /><br/>Some plain text<br/><a href='http://www.google.com'>http://www.google.com</a>"; 

var elem= document.createElement("div"); 
elem.innerHTML = string; 

var images = elem.getElementsByTagName("img"); 
for(img in images){ 
    ... 
} 

kam aber nach ich weiß nicht, wie es weitergehen, wie dies aus dom Elemente in String umgewandelt wird. und ich muss immer noch Höhe und Breite anhängen.

meine letzte Zeichenfolge sollte so etwas wie diese

x = '<div class="sample"> 
     <img src="http://www.example.com/i/java.png" height="200px" width="100px"> 
    </div> 
    <div class="sample_another"> 
     <img src="/i/somedir/python.png" width="150px" height="150px"> 
    </div>' 

sein kann mir jemand helfen, dieses Ziel zu erreichen bitte. Danke

+0

nicht regex HTML für die Analyse gezeigt Verwenden! https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+0

@Our_Benefactors _ "Das ist, was ich bis jetzt gefunden habe ... "_ Ich sehe keine regulären Ausdrücke im Skript – Andreas

+1

Ihre endgültige Zeichenfolge sieht genau wie die ursprüngliche Zeichenfolge aus? Warum erhalten Sie auch die Höhe und Breite eines Bildes, nur um diese in Attributen hinzuzufügen? – adeneo

Antwort

1

Sie können die height Eigenschaft verwenden, um den Wert des Höhenattributs eines Bildes festzulegen. Und width Breite einstellen.

Verwenden Sie die for-Schleife wie unten gezeigt, wenn Sie mehrere img Tags in Ihrer Zeichenfolge haben. Wenn nicht, können Sie einfach images[0] ohne for-Schleife verwenden.

EDIT: Wenn Sie die Zeichenfolge selbst, sondern nur neu zuweisen die Zeichenfolge ändern möchten, wie unten

var string ="<img alt='' src='http://api.com/images/UID' /><br/>Some plain text<br/><a href='http://www.google.com'>http://www.google.com</a>"; 
 

 
var elem= document.createElement("div"); 
 
elem.innerHTML = string; 
 

 
var images = elem.getElementsByTagName("img"); 
 

 
for(i=0; i<images.length; i++){ 
 
    images[i].width = "150"; 
 
    images[i].height = "250"; 
 
} 
 

 
string = elem.innerHTML; // reassign the 'string' with new value 
 
console.log(string);

+0

Zusätzlich dazu möchte ich auch die Höhe und die Breite Attribute zu dem Img-Tag in der Hauptsaite x stecken. – Pujan

+0

@Pujan Du meinst so? – Munawir

+0

Omg Yesss. Danke vielmals :) – Pujan

Verwandte Themen