Preluare text din sir cu cod html

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
andras
Mesaje: 430

Preluare text din sir cu cod html

Salut,
In HTML am ceva de genul (simplificat):

Cod: Selectaţi tot

<td class="pnfc" ><?php echo $rand["pn"];?> >  
<!-- urmeaza div-ul pentru tooltip (construit cu HTML si CSS) -->
<?php
if (!empty($rand['coment'])){
?>
<div  style="z-index:9100;position:absolute;"><div class="com_tooltip"><?php echo trim($rand['coment']); ?></div></div>    
<?php } ?></td>
Intrebare: intr-un formular html care contine un input type="text" care are ca valoare continutul din <td> (incarcat din JavaScript) cum fac sa elimin complet acel <div>? Adica in input-ul de tip text sa nu-mi apara decit valoarea din acel <?php echo $rand["pn"];?>. Ar trebui cumva (in JavaScript) sa elimin toate caracterele cuprinse intre < si >. Multumesc.

tycyssg Mesaje: 58
Pai dc nu faci cv de genu in php:

Cod: Selectaţi tot

$valdeinvarcat = $rand['pn']; 
si din javascript incarci direct variabila $valdeincarcat . ma rog poti direct cu $rand['pn'] dar ai mai multe ghilimele de campat.

MarPlo Mesaje: 4343
Daca vrei sa faci in JavaScript, vezi acest exemplu si-l poti adapta pentru scriptul tau.

Cod: Selectaţi tot

<script>
var str = 'some text <div>Content in Div</div>, other content.';
var str2 = str.match(/^[^\<]+/ig); // get the text from the beginning till first "<"
alert(str2);  // some text
</script>

andras Mesaje: 430
Multumesc, este ceea ce aveam nevoie. Eu folosesc innerHTML si in input type="text" imi aparea ceva de genul:

Cod: Selectaţi tot

casca de protectie  <div  style="z-index:9100;position:absolute;"><div class="com_tooltip"> comentariu </div></div>.
Acum e ok.

Edit:
La sirul rezultat dupa:

Cod: Selectaţi tot

var str2 = str.match(/^[^\<]+/ig);
nu mai pot aplica functia trim(). Am incercat (in JS):

Cod: Selectaţi tot

var str3 = str2.trim();
dar imi da eroare.
Variabila str2 nu este tot de tip String? Unde pot sa vad detailat functia match()? Multumesc.

MarPlo Mesaje: 4343
Functia match() returneaza un array cu valorile gasite, dupa cum e tiparul RegExp; sau "null" daca nu gaseste.
In codul de sus mai corect e asa ca sa aplici trim() sau alte functii la sirul gasit:

Cod: Selectaţi tot

<script>
var str = '  some text  <div>Content in Div</div>, other content.';
var ar_str = str.match(/^[^\<]+/ig); // array with text from the beginning till first "<"

if(ar_str !== null) {
  var str2 = ar_str[0].trim();
  alert(str2);  // some text
}
</script>

Subiecte similare