[ Spid3RmaN @ 16.12.2008. 19:16 ] @
Zanima me da li postoji nekakva univerzalna varijabla koja moze da zameni bilo šta.

Npr:
U html fajlu hoću da zamenim svaki "value='bilo_sta'", pa me zanima šta da koristim umesto "bilo_sta"?

Primer html fajla:
Code:

<html>
<head>
</head>
<body>
<input type="text" value="vrednost1" />
<input type="text" value="vrednost2" />
<input type="text" value="vrednost3" />
</body>
</head>


U primeru iznad, voleo bih da sve tri vrednosti(value="vrednost1", value="vrednost2", value="vrednost3") zamenim(izbrisem) jednom(replace) javascript funkcijom.
Da li neko zna kako to mogu da izvedem?
[ Nikola Poša @ 16.12.2008. 20:27 ] @
Moram da priznam da ne razumem shta tachno zhelish da postignesh...

Ako hocesh da value vrednosti tih input-a postavish na "nishta", mozhesh npr. svakom od ta tri input-a da dash neki id, npr. polje1, polje2, polje3, a onda u nekoj javascript funkciji da "protrchish" kroz sve njih i resetujesh njihove value atribute, ovako:
Code:

for (var i = 1; i <= 3; i++){
   document.getElementById('polje'+i).value = '';

[ Spid3RmaN @ 16.12.2008. 22:20 ] @
@Nikola Poša

Nije valjda da sam toliko bio nejasan. Uopšte se ne radi o tome :)
Hoću da izbrišem iz ovog koda sledeće: value="vrednost1", value="vrednost2", value="vrednost3".
Problem je što imam različite vrednosti, one ne moraju da budu vrednost 1, 2 i 3...
Evo primer kako bih ja rešio javaskriptom:
Code:

document.replace(/'value="' + varijabla_koja_menja_vrednosti + '"'/, "")


I onda mi firebug javlja da nije definisana, kao što i nije...
Naravno da ja mogu da dajem vrednosti ovoj varijabli, ali šta ako ja hoću da počistim ceo kod od: value="bilo_koja_vrednost"? Cilj je da mogu da izbrišem svaki value atribut i kad mu ne znam vrednost.
Nadam se da ti je sad jasnije šta želim.
[ Mister_rap @ 17.12.2008. 00:41 ] @
Momak ti je dao ok odogovor!
U njegovom kodu imas document.getElementById tako da nauci sta to znaci!

Sa druge strane moze da posluzi i obican reset button ako je poenta samo da value vradis na default vrednost!
[ Spid3RmaN @ 17.12.2008. 10:43 ] @
@Mister_rap

Jeste, dao je lep odgovor, al' za potpuno pogrešnu stvar... Drugo, nemoj da vređaš ako nisi razumeo moje pitanje!
Nikola hvala na odgovoru, ali uopšte to nisam pitao...

Hajde da postavim ovako.. Učitao sam kod neke druge strane na moju stranu u polje za tekst, i sad ja hoću da iz celog koda izbrišem atribut value, zajedno sa njegovom vrednošću.
U ovom slučaju ne mogu da koristim ništa drugo osim replace(koliko ja znam), zato što se ovaj kod više ne tretira kao kod već kao običan tekst(jer je u polju za tekst...).

Kada bi taj kod imao beskonačno mnogo: value="razlicita_vrednost1", value="razlicita_vrednost2" i tako dalje, kako biste vi sve te vrednosti(ali u polju za tekst su, pa ne moze getElementById, samo preko replace()) zamenili?

Sada dolazi ono što sam ranije pomenuo:

Code:

var textarea = document.getElementById("id_polja").innerHTML;
textarea.replace(/value='/ + promenljiva + /'/, "");


Ovo mi nije uspelo jer promenljiva nije definisana. Pa da li postoji neka promenjiva koja bi mogla da zameni bilo sta?

Nadam se da sam sad bio jasan.
[ Nikola Poša @ 17.12.2008. 11:23 ] @
Mislim da sam sad ukapirao shta ti hocesh da postignesh... Tebi u stvari treba neki dzoker simbol ili tako neshto koji ce da zameni bilo koji string. Nisam siguran da li ovo shto cu sada da napishem mozhe u JavaScriptu (znam da neshto slichno mozhe u PHP-u), ali probaj da taj deo sa replace napishesh ovako:
Code:

textarea.replace(/value=[a-Z0-9_-]'/, "");

Nikad nisam radio sa regularnim izrazima u JavaScript-u, radio sam ih samo u PHP-u, tako da stvarno ne znam kako ide sintaksa shto se toga tiche. Znam da je preuzeta iz Perl-a i da je dosta rogobatna... :) U tim uglastim zagradama bi trebao da bude skup znakova za koje hocesh da se nadje "poklapanje", a tebi tu treba praktichno bilo koji znak...

btw Ne vidim neku veliku razliku u tome da u input tag-u ne postoji taj atribut value ili je on jednak praznom string-u (value = "")...
[ Mister_rap @ 17.12.2008. 13:48 ] @
Iskreno se izvinjavam ako sam te uvredio to mi nije bila namera!

Samo pitanje trebas da formulises jasno, prvo si isao sa input type text pa sad idemo sa textarea...
Na kraju se moze ispostaviti da ti treba nesto deseto :D

Enivej moras koristiti regex za ovo samo sto kod koji je nikola ostavio nece raditi...
Evo ti kod koji bi trebalo da radi...

Code:

<html>
<head>
<title>Replace...</title>

<script type="text/javascript">

function rpl(){
  var field = document.getElementById("my");
  var inp_txt = field.innerHTML;
  
  var replaced_txt = inp_txt.replace(/value='[0-9a-zA-Z\s]+'/gi, "value=''"); 
  field.innerHTML=replaced_txt;
}

</script>
</head>

<body>

<textarea name="my" id="my" rows="20" cols="80">

value='1323'
value='text'
value='hhdhsaihdia'
pa imamo onda
<input type='text' value='neka vrednost' />
<input type='text' value='neka vrednost sdads' />
<input type='text' value='43545' />

</textarea><br />

<a href="javascript:rpl()">replace</a>

</body>

</html>
[ Aleksandar Ružičić @ 17.12.2008. 14:50 ] @
a evo sve to u jednoj liniji jquery-ja:
Code:

$('#my').val($('<div/>').html($('#my').val()).appendTo('body').find('*[value]').each(function(){ $(this).removeAttr('value'); }).end().remove().html());


:)

mada je ovo verovatno sporije od Mister_rap-ovog resenja, a i verovatno nije potrebno da se html ubacuje u DOM, ali me mrzi sad da testiram a ovo ce sigurno da radi...
[ Spid3RmaN @ 17.12.2008. 18:29 ] @
E hvala svima, to sam tražio
Sada ću da isprobam da li radi, pa ću da javim.

Edit:

Evo probao sam Mister_rep-ovo rešenje i radi odlično, samo da još ponešto pitam

Ovaj deo, što menja vrednosti "[0-9a-zA-Z\s]+"(odlično radi) samo me zanima šta tačno znači ovo "\s", primetio sam da bez njega briše samo jednu reč.

[Ovu poruku je menjao Spid3RmaN dana 17.12.2008. u 19:56 GMT+1]
[ Aleksandar Ružičić @ 17.12.2008. 18:58 ] @
\s je separator, space, tab ili vertikalni tab
[ Mister_rap @ 17.12.2008. 19:02 ] @
Da bas tako...

Moze to i drugacije da se napise nego mislim da je tako najcitljivije!


Ps.
Trebalo bi da radi i ovo jquery resenje al mislim da je ovo malo vise od 1 linije koda a brzinu treba zanemariti...
[ Spid3RmaN @ 17.12.2008. 19:15 ] @
Ok, shvatam, kad ima "/s" onda briše i razmak.
@Aleksandar Ružičić
Ovo sa jquery-em nisam isprobao jer iskreno ne znam još kako se to koristi i nisam ništa razumeo(ne volim da koristim ono što ne razumem...).

Hvala još jednom svima na trudu i Nikoli koji je prvi shvatio šta hoću.
[ Aleksandar Ružičić @ 17.12.2008. 22:11 ] @
Citat:
Mister_rap:Ps.
Trebalo bi da radi i ovo jquery resenje al mislim da je ovo malo vise od 1 linije koda a brzinu treba zanemariti...

pisao sam to na poslu na 24'' monitoru, tamo je u jednoj liniji, al sad kad citam ovo sa 1200x800 rezolucije vidim da je prelomljeno u 2 reda :)