Pergunta

The text look like this.

var fi,se,en;
var description = 
"<p>
FI: Sähköpyörä, Tunturi<br />
SE: Elektrisk Cykel, Tunturi<br />
EN: Electric Bike, Tunturi<br />
<\/p>";

I want to select everything inside p tag after FI: until tag br as same as SE: and EN:

The result will be like this.

var fi = "Sähköpyörä, Tunturi";

var se = "Elektrisk Cykel, Tunturi";

var en = "Electric Bike, Tunturi";

Note: The text are dynamic change.

Thanks !!!

Foi útil?

Solução

How about using some regular expressions

var fi,se,en;
var description = 
"<p>\
FI: Sähköpyörä, Tunturi<br />\
SE: Elektrisk Cykel, Tunturi<br />\
EN: Electric Bike, Tunturi<br />\
</p>";
var match = description.match(/FI:\s*(.+)<br \/>\s*SE:\s*(.+)<br \/>\s*EN:\s*(.+)<br \/>/);
fi = match[1];
se = match[2];
en = match[3];

http://jsfiddle.net/mowglisanu/VGSaW/

Outras dicas

If you can arrange for the individual language strings to be enclosed in spans, then you can avoid the need for regular expressions.

var description = '<p>FI: <span class="fi">Sähköpyörä, Tunturi</span><br/>SE: <span class="se">Elektrisk Cykel, Tunturi<br/>EN: <span class="en">Electric Bike, Tunturi<br/></p>';
var $desc = $(description);
var fi = $desc.find(".fi").text();
var se = $desc.find(".se").text();
var en = $desc.find(".en").text();

Explode the sting in to array with split:

    var fi,se,en;
    var description = 
    "<p>\
    FI: Sähköpyörä, Tunturi<br />\
    SE: Elektrisk Cykel, Tunturi<br />\
    EN: Electric Bike, Tunturi<br />\
    </p>";

    bits = $(description).html().split(/:|<br>/); 

output

    array["FI", " Sähköpyörä, Tunturi", "SE", " Elektrisk Cykel, Tunturi", "EN", " Electric Bike, Tunturi"]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top