Topic: class keitimas

taigi turiu js koda:

....
<script>
function change() {
var oldid = document.getElementById("oldid").value;
document.getElementById(oldid).className = "linkas";
}
</script>
<body onload="change()">
<input type='hidden' id='oldid' name='oldid' value='0' />
<a href='#' id='0' class='testas'>testas ir tiek</a>
</body>
....

Ir nesuprantu kodel kodas kartais tiesiog nepakeicia class pavadinimo - reikia suveikia.
Ir tai vyksta daugeliui lankytoju.

2 (edited by md5 2012-05-23 16:22:49)

Re: class keitimas

Tikriausiai sviestą sviestuoji, parink logiškus kintamųjų vardus, tada nesisviestuos logika... :)
http://www.w3schools.com/tags/att_standard_id.asp

Kiek maigyklių sudėvėjai ?

Re: class keitimas

var oldid = document.getElementById("oldid").value;

document.getElementById("oldid") grąžina Element objektą (jei egzistuoja node su nurodytu id). Element objektas neturi savybės (property) value, todėl aukščiau parašytame kode oldid vertė visada bus undefined.

Jei domina kokias savybes turi Element objektas - https://developer.mozilla.org/en/DOM/element

document.getElementById(oldid).className = "linkas";

oldid vertė undefined, todėl niekam nebus priskiriama "linkas". Vienas būdas pataisyti:

document.getElementById('oldid').className = "linkas";

Nežinau koks kodas, bet gal patogiau būtų naudoti jQuery ar zepto.js biblioteką. ženkliai palengvina darbą su DOM.

Re: class keitimas

Na ka dekui uz info.
Kelsiuosi prie jQuery nes su paprastu grynos pievos.

Re: class keitimas

Ne pievos o reikia zinoti teisinga sintakse ir taisykles. Tada nebuna jokiu problemu (naudojant ta nedideli kiek JS. Juk nedaug naudojat JS, ar ne? :) )

6 (edited by md5 2012-05-24 00:24:15)

Re: class keitimas

andriusfm wrote:
var oldid = document.getElementById("oldid").value;

document.getElementById("oldid") grąžina Element objektą (jei egzistuoja node su nurodytu id). Element objektas neturi savybės (property) value, todėl aukščiau parašytame kode oldid vertė visada bus undefined.

Jei domina kokias savybes turi Element objektas - https://developer.mozilla.org/en/DOM/element

document.getElementById(oldid).className = "linkas";

oldid vertė undefined, todėl niekam nebus priskiriama "linkas". Vienas būdas pataisyti:

document.getElementById('oldid').className = "linkas";

Nežinau koks kodas, bet gal patogiau būtų naudoti jQuery ar zepto.js biblioteką. ženkliai palengvina darbą su DOM.

var oldid gauna reikšmę 0, nes hidden value - 0 ir gražina ne element type, o INPUT type, kuris turi value  property, bet be kabučių oldid suranda A tagą su ID="0", bet w3schools trimituoja dėl ID sudarymo:

Specifies a unique id for the element. Naming rules:
Must begin with a letter A-Z or a-z
Can be followed by: letters (A-Za-z), digits (0-9), hyphens ("-"), and underscores ("_")
In HTML, all values are case-insensitive

P.S rašykit logiškus kintamųjų pavadinimus, kitaip dėl dviejų eilučių teks perrašyti bibliją... ::)

Kiek maigyklių sudėvėjai ?

7 (edited by andriusfm 2012-05-24 08:33:38)

Re: class keitimas

md5 wrote:
andriusfm wrote:
var oldid = document.getElementById("oldid").value;

document.getElementById("oldid") grąžina Element objektą (jei egzistuoja node su nurodytu id). Element objektas neturi savybės (property) value, todėl aukščiau parašytame kode oldid vertė visada bus undefined.

Jei domina kokias savybes turi Element objektas - https://developer.mozilla.org/en/DOM/element

document.getElementById(oldid).className = "linkas";

oldid vertė undefined, todėl niekam nebus priskiriama "linkas". Vienas būdas pataisyti:

document.getElementById('oldid').className = "linkas";

Nežinau koks kodas, bet gal patogiau būtų naudoti jQuery ar zepto.js biblioteką. ženkliai palengvina darbą su DOM.

var oldid gauna reikšmę 0, nes hidden value - 0 ir gražina ne element type, o INPUT type, kuris turi value  property, bet be kabučių oldid suranda A tagą su ID="0", bet w3schools trimituoja dėl ID sudarymo:

Specifies a unique id for the element. Naming rules:
Must begin with a letter A-Z or a-z
Can be followed by: letters (A-Za-z), digits (0-9), hyphens ("-"), and underscores ("_")
In HTML, all values are case-insensitive

P.S rašykit logiškus kintamųjų pavadinimus, kitaip dėl dviejų eilučių teks perrašyti bibliją... ::)

Taip, oldid vertė bus lygi nuliui - visai pamiršau apie trumpesnį būdą pasiekti atributą. Tik nesutinku dėl teiginio, jog grąžina input type. Type neturi savybių, objektas turi. Tiksliau kalbant grąžinama nuoroda (reference) į Element objektą. Plačiau https://developer.mozilla.org/en/DOM/do … lementById

Re: class keitimas

patikslinsiu inputElement object reference, element objektas - per daug abstraktu

Kiek maigyklių sudėvėjai ?

Re: class keitimas

md5 wrote:

patikslinsiu inputElement object reference, element objektas - per daug abstraktu

Sutinku, tik originalaus klausimo fone tas atrodo nelabai svarbu :)

10

Re: class keitimas

andriusfm wrote:
md5 wrote:

patikslinsiu inputElement object reference, element objektas - per daug abstraktu

Sutinku, tik originalaus klausimo fone tas atrodo nelabai svarbu :)

tada puse paskutinių postų buvo nereikalingi ;)

Kiek maigyklių sudėvėjai ?

Re: class keitimas

Dekui uz info.
Siek tiek paekspermentavau ir pasidariau puikiai veikianti koda.

 var SenaDaina1 = document.getElementById("OldMusic").value;
 var keiciame1 = document.getElementById(SenaDaina1);
 if(keiciame1) {
 keiciame1.className = "linkas";
 }

Tiesiog nezinau jog nepavykus gauti elemento duomenu kodas nustoja veikias ;D

Re: class keitimas

Skaitau tavo kodą ir nelabai suprantu esmės :/

Tu esamam ID (OldMusic) reikšmėje esi nustatęs kitą ID kurį nori pakeist? Nes kitu atveju aš kažkaip čia nerandu logikos. Kitu atveju naudok jQuery, mažiau problemų turėsi ateityje kai reikės derintis prie IE.

13 (edited by Avice 2012-06-01 18:27:10)

Re: class keitimas

As cia tik kaip pavizdi parasiau.
Kitas klausimas butu i kuri nelabai isgalvoju atsakymo.
Susiradau js koda kuris is swf istraukia kintamaji ir atvaizduoja puslapije , tai dbr klausimas ar yra kokiu nors budu isgauti visa kintamuju sarasa? su programa ar kodu kokiu.?
Kadangi ta swf faila ne as kuriau , tai noriu suzinot visu kintamuju sarasa...

Re: class keitimas

Siaip dokumentacijoje turetu buti viskas aprasyta :)

Re: class keitimas

Na jau radau kitoki buda atlikti mano norimui budui.
Kitas klausimelis kurio negaliu isprest.
Ar imanoma is pvz.: http://api.zippyshare.com/api/player.swf istraukt dainos esama laika arba pabaigos laika su javascript?

Re: class keitimas

Jei tas playeris tokios infos neduoda, tai ir neimanoma. O dokumentacijoje ieskoti nemeginai?

Re: class keitimas

Dar vieno dalikelio nesuprantu.

function nexts() {
if(10==10) {
window.setTimeout(  
    function() {  
        next();  
    },  
    1000  
);
}
}

kodel nesuveikia window.setTimeout(... ? kai nuemu if tuomet veikia.

Re: class keitimas

Keista, tačiau man veikia. Pvz.,

function next() { alert( 1 ) }

function nexts() {
if(10==10) {
window.setTimeout(  
    function() {  
        next();  
    },  
    1000  
);
}
}
nexts();

Maždaug po sekundės pasirodo langas su skaičiumi 1.

Avice wrote:

Dar vieno dalikelio nesuprantu.

function nexts() {
if(10==10) {
window.setTimeout(  
    function() {  
        next();  
    },  
    1000  
);
}
}

kodel nesuveikia window.setTimeout(... ? kai nuemu if tuomet veikia.

19 (edited by Avice 2012-06-21 18:22:41)

Re: class keitimas

Neodan wrote:

Jei tas playeris tokios infos neduoda, tai ir neimanoma. O dokumentacijoje ieskoti nemeginai?

Tai ir neimanoma istarukt teksto is swf jei ant to teksto nera uzdeta kintamojo?
Pvz kaip cia http://www.permadi.com/tutorial/flashjs … age=testas , kintamasis [message].

Beto to tas tekstas yra text field laukelije ji galima pazimeti ir nukopijuoti. Ar butu galima ji paiimt su js?

20 (edited by qutwala 2012-06-22 00:30:32)

Re: class keitimas

Avice wrote:
Neodan wrote:

Jei tas playeris tokios infos neduoda, tai ir neimanoma. O dokumentacijoje ieskoti nemeginai?

Tai ir neimanoma istarukt teksto is swf jei ant to teksto nera uzdeta kintamojo?
Pvz kaip cia http://www.permadi.com/tutorial/flashjs … age=testas , kintamasis [message].

Beto to tas tekstas yra text field laukelije ji galima pazimeti ir nukopijuoti. Ar butu galima ji paiimt su js?

Nesu flash'eris, tačiau jeigu parametrus paduodi per url'ą - juos ir imti gali iš url'o.
Realiai manau čia galėtų viską išspręst žaidžiant su parametrais, kaip jau ir minėjau - nesu flash ekspertas, tačiau manau jog nebūtinai jie turi būti paduodami per tą patį URL'ą.
čia kalbu apie patį flash'ą kuris priima kažkokius params'us ir/ar grąžina.
O kaip jau ir minėjo kažkuris iš narių - jeigu pačiame flash'e toks navarotas nėra suprogramuotas - nieko neišgimdysi čia. :) O jeigu ir išgimdysi - basic'ų tikrai tam nepakaks.