-
Fototrend
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
-
nevemfel
senior tag
válasz
lanszelot #10324 üzenetére
Használhatod a foreachet is, teljesen mindegy. Én nem használom, legfeljebb tömbökön, mert a DOM nem tömböket ad vissza, hanem HTMLCollection-t (ennél nincs forEach, ezért először tömbbé kell konvertálni), vagy NodeList-et, aminél van forEach, de nincs meg a többi (map, reduce, filter).
Ha javascriptről és a DOM-ról van szó, és simán végig akarsz szaladni egy iterálható gyűjtemény elemein mindenféle nagy varázslat nélkül, akkor a leghülyebiztosabb a mezítlábas for ciklus.
-
-
cattus
addikt
válasz
lanszelot #10321 üzenetére
Próbáld meg az itt leírt módszert.
function delay(ms) { return new Promise(res => setTimeout(res, ms)); }
async function task(el) {
el.open = true;
await delay(1000);
el.open = false;
}
const details = Array.from(document.getElementsByTagName("details"));
async function run() {
for (let i = 0; i < details.length; i++) {
await task(details[i])
}
}
run();Ahogy olvastam, forEach használatával nem fog menni amit szeretnél, mert annak a callback függvényében nem lehet await-et használni blockingra.
-
-
nevemfel
senior tag
válasz
lanszelot #10273 üzenetére
Nem írja sehol, azt adja vissza.
pl ha consol log -al megnézem, az érték undefinied.Ha a böngészőkonzolon írod be a kódot, és ott futtatod, akkor a console.log megtévesztő lehet, mert ha beírod ezt:
console.log(1);
, és entert ütsz, a Firefox ezt írja ki:1
undefined
Az első sor a console.log kimenete, a második a visszatérési értéke.ha form submit -nál szeretném figyelni, hogy üres e, és ha nem üres csak akkor jelenjen meg a submit gomb.
Egyszerűbb így:
<input type="text" required />
Így kötelező lesz kitölteni a mezőt. -
válasz
lanszelot #10269 üzenetére
for helyett forEach, célravezetőbb.
Plusz ha értéket akarsz módosítani, miért innerHTML?
Ha a táblázatodba input mezők vannak, akkor value az érték.
Írasd ki az egész Noodle-t és a Console-ba nyisd le, nézd meg, mely attribútumai tartalmazzák a kívánt értéket. Majd azt címezd meg -
-
-
-
Gardaai
senior tag
válasz
lanszelot #10208 üzenetére
Persze, hogy hibás, mert kivetted a kódból azt az elemet ahova ugrani szerettél volna.
Ha már egy módosított kódba illeszted be az első verziódra készített kódot, nagy eséllyel nem fog működni.
Nyilván tesztelés nélkül nem írok ide egy kódot, hogy nézd meg Te magad jó lett-e.Volt egy <span id='jump'></span> elemed a fffz ID diveden belül, legfelül és erre írtad a kódodat is, hogy oda ugorjon ami nem működött. Ebből kiindulva lett megírva a kódom.
Ha csak a tetejére szeretnél ugorni, nem pedig egy adott elemhez a szövegen belül akárhova, akkor document.getElementById('jump').offsetTop - 250 helyett csak írj egy nullát, tehát: document.getElementById('fffz').scrollTop = 0; -
lanszelot
addikt
válasz
lanszelot #10184 üzenetére
Kiegészítés: csak abban a bongészőben működik, amelyikben így megnyitom az egyik json file-t.
Amíg nem nyitom meg a bongészőben a json file-t addig nem működik.
firefox nagyon jól mutatja a json file-t. Nem ömlesztve,. És lehet váltani a nézetek között, nagyon jó
Szerver: infinityfree /pont/ com
-
disy68
aktív tag
válasz
lanszelot #10093 üzenetére
"Azt nem tudom miért rakta a functionokat stb egy fix változóba.
Az micsoda? Mire jó? Hogy használom azt a változót?"Ez egy kicsit összetettebb dolog. Leginkább az arrow function (lambda/anonym function) és a klasszikus function expression különbségei a lényegesek itt.
Ennél jobban nem hiszem, hogy össze tudnám foglalni: https://stackoverflow.com/a/34361380
-
disy68
aktív tag
válasz
lanszelot #10090 üzenetére
A var, let, const változók deklarálásához használhatók. A scope pedig ezek elérhetőségét takarja a kódon belül.
Itt olvashatsz róluk bővebben: https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/
az egész url csekkolós dologhoz meg annyit, hogy böngészőből csak többé-kevésbé fogsz normális válaszokat kapni CORS miatt, a legtöbb szerver nem fogja kiszolgálni a kérést, ha az más domainről jön
erről bővebben itt: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
-
sztanozs
veterán
válasz
lanszelot #10086 üzenetére
termeszetesen a meghivott function-okre gondoltam...
fn1();
fn2();
fn3();
itt az fn1 nem tud semmit "atadni" az fn3-nak, mert nincsenek azonos scope-ban (sot az egyik funkcionak nem is kell tunia arrol, hogy a masikat meghivtak-e, vagy sem.
Viszont ha szeretnel allapotot kezelni, akkor a funkciokat egy kozos scope-ba hozni, pl:const scope = {
let is_ok = false;
fn1() {
...;
this.is_ok = ...;
}
fn3() {
...;
if (this.is_ok == ...) {} ;
}
}
scope.fn1();
fn2();
scope.fn3(); -
sztanozs
veterán
válasz
lanszelot #10084 üzenetére
A kód amit leírtam egy function. Abba rakok egy elágazást.
Az else ág /false/ kellene egy másik function -ba.
Ezt el nem tudom kepzelni... de:
Mivel alapbol a function-ok ugy is sorban egymas utan futnak, igy nem az egyik function-bol adsz at adatot egy masikba, hanem az elso function-nek vissza kell adni az erteket, a masiknak meg fel kell vennie. De ha nem akarod modositani a fuggveny szignaturajat, akkor elkerulo megoldaskent a kovetkezokat hasznalhatod:
1. beraksz mindent egy osztalyba, es az elso hivasban eltarolod az erteket egy osztaly-valtozoba, amit a masik funkciobol elersz.
2. csinalsz egy globalis valtozot, amit mindket funkciobol elersz.A masodik megoldas nem javaslom, mert bar mukodik, de minden esetben elkerulendo, hacsak nincs ra mas megoldas (altalaban van).
-
sztanozs
veterán
válasz
lanszelot #10051 üzenetére
Miert faj, ha a json nem ugy nez ki, hogy
{
0 : {"elso" : "www.elso.hu",
"masodik" : "www.masodik.hu"}
1 : {"elso" : "www. harmadik.hu",
"masodik" : "www.negyedik.hu"}
}
hanem hogy[
{"elso" : "www.elso.hu","masodik" : "www.masodik.hu"},
{"elso" : "www. harmadik.hu","masodik" : "www.negyedik.hu"}
]A kod ugyis csak az eredmenyt latja, neked nem kell foglalkozni a reszletekket, mind a kettot ugyanugy fogod cimezni...
Raadasul modernebb nyelvekben iteratort (foreach) hasznalunk, nem indexelest.Amugy is tervezesi hibanak tunik az egesz. Igy kellene kinezzen a jsonnak, ha egy kulcsszohoz tobb url is tartozhat:
{
"elso" : ["www.elso.hu", "www. harmadik.hu"],
"masodik" : ["www.masodik.hu", "www.negyedik.hu"],
"harmadik" : ["otodik.hu"]
} -
hiperFizikus
senior tag
válasz
lanszelot #10040 üzenetére
Nincs mese, rosszul csináltad, át kell írnod, de nem kézzel hanem egy kisebb külön script-el !
Mivel az "eltolásod" rendszeres lehet, ezért egy külön kisebb script programmal hamar végezhetnél vele .
Ajándék képen, küldjél nekem privátban valami ami szerinted jobb linkeket ♥
-
Ispy
nagyúr
válasz
lanszelot #10031 üzenetére
Az api oké, az megy, lekérem a távolságot és visszakapom a koordinátákat. De a megjelenítéshez az sdk kér api keyt, amit így ki lehet hekkelni a frontendből, ami nem túl egészséges. Ez egy kész fejlesztés, már vagy 2 éve csináltam, használják is, igaz eddig csak .net webviewban volt megjelenítve, szóval nem igazán gond ott, mert sem a sourcehoz, sem a linkhez nem fér hozzá senki. De ha webes megoldást szeretnék ott ez egy security risk. És nem tudom mi erre az ipari szabvány megoldás.
Itt egy példa, ha megnézed a sourcet.
-
Bzozoo
tag
válasz
lanszelot #9845 üzenetére
Körülbelül így néz ki.
A kódot ide is beteszem, ha esetleg a link eltörik egyszer:const timer = {
default: 0,
get() {
return this.default;
},
increase() {
this.default += 1;
},
reset() {
this.default = 0;
}
};
(() => {
render(timer.get());
document.addEventListener("click", handleButtons);
})();
function handleButtons(event) {
switch (event.target.id) {
case "startbutton":
handler.start();
break;
case "stopbutton":
handler.stop();
break;
case "resetbutton":
reset();
break;
}
}
const handler = {
interval: null,
start() {
if (this.interval) {
clearInterval(this.interval);
this.interval = null;
}
this.interval = setInterval(flow, 1000);
},
stop() {
clearInterval(this.interval);
this.interval = null;
}
};
function TimerTemplate({ hours = "00", minutes = "00", seconds = "00" }) {
return `${hours}h:${minutes}m:${seconds}s`;
}
function timeConverter(time = 0) {
const date = new Date(time * 1000).toISOString();
const tsring = date.substr(11, 8);
const [hours, minutes, seconds] = tsring.split(":");
return { hours, minutes, seconds };
}
function render(time) {
app.innerHTML = TimerTemplate(timeConverter(time));
}
function flow() {
timer.increase();
render(timer.get());
}
function reset() {
timer.reset();
render();
}
-
nevemfel
senior tag
válasz
lanszelot #9845 üzenetére
Html gombot onclick eventtel sokkal jobb kikérni
Most épp úgy teszek, mintha ezt a mondatot nem is láttam volna. Mindenkinek jobb lesz így.
Egyébként van ebben valami, de hogy "sokkal" jobb lenne, azzal vitatkoznék. Illetve attól függ, mit értesz az alatt, hogy "sokkal jobb"...
-
hiperFizikus
senior tag
-
Zedz
addikt
válasz
lanszelot #9841 üzenetére
Possible solution.
ChatGPT generalta, de gyors atfutas utan szerintem ebbe az iranyba kellene neked is menned. -
-
martonx
veterán
válasz
lanszelot #9617 üzenetére
Szerintem erre nem a getTimezoneOffset kell neked, hanem csak egy sima kivonás
A getTimezoneOffset azt adja meg, hogy adott lokál dátum hány perccel tér el UTC időtől.
A példámban pl. magyar gépen futtatva, magyar időzónára 60 percet ad meg, ami korrekt.
Csak ennyit tud, nincsenek paraméterei.
Csináltam egy js fiddle-t: JSFiddle - Code Playground -
martonx
veterán
válasz
lanszelot #9536 üzenetére
Ezt most minden rosszindulat nélkül kérdezem, kérlek ne vedd támadásnak, de ahhoz, hogy hová tudjuk tenni a kérdéseidet muszáj tudnunk:
Angollal van problémád, vagy olvasási, szövegértési nehézségeid vannak, vagy más szellemi fogyatékosságod?
Mert ha ezt tudjuk, és tisztázzuk, akkor nyilván megpróbálunk ennek megfelelően hozzádállni, nem pedig simán hülyének nézni.A Set-et fogd fel egy tömbként, azzal a különbséggel, hogy nem tudod ugyanazt többször beletenni.
const myArray = [1, 2, 3];
myArray.push(1);
[1, 2, 3, 1] - et fog eredményezni.Míg ugyanez Set-el nem fog menni, ha már benne van az 1, akkor nem fog újra belekerülni.
Remélem így kielégítő volt a magyarázat? -
martonx
veterán
-
vz12
tag
válasz
lanszelot #9529 üzenetére
function getSamePieces(t1,t2) {
t3 = t2.slice(); // klónozás
length_before = t3.length;
for (var i=0; i<t1.length;i++) {
idx3 = t3.indexOf(t1[i]);
if ( idx3 != -1)
t3.splice(idx3, 1);
}
nRet = (length_before-t3.length);
while(t3.length > 0)
t3.pop(); // törlés
return nRet;
}
t1 = [1,2,3,4,5,6,7];
t2 = [2,8,2,1,6,1,1];
nSame = getSamePieces(t1,t2);
document.write(nSame);
-
cattus
addikt
válasz
lanszelot #9525 üzenetére
Kicsit gondolkoztam rajta, nekem a következő jutott eszembe: sorbarendezed mindkét tömböt és az elejéről indulsz két indexszel (i indexeli az A tömböt, j meg a B tömböt). Ha A != B[j], akkor mindkét indexet növeled. Ha A(i) == B[j], akkor növeled a számlálót és megnézed A[i + 1]-et és B[j + 1]-et. Ha ezek is egyeznek A(i)-vel vagy B[j]-vel, akkor növeled i-t és j-t is. Ha csak az egyik egyezik (mondjuk A[i + 1] már más, de B[j + 1] még nem), akkor i-t addig növeled, amíg ráfutsz a következő számra, j-t meg csak 1-gyel, és jöhet elölről az egész, amíg i vagy j el nem éri a tömb végét. Nem csináltam rá kódot, szóval lehet valami edge case-t kihagytam, de én így indulnék neki.
-
martonx
veterán
válasz
lanszelot #9510 üzenetére
PHP -> szerver oldal, érted a PHP egy szerveren fut, még ha az történetesen localhost is, azaz a te géped a szerver.
Ajax -> kliens oldal, a js böngészőben fut, bárkinek a gépén, ne zavarjon meg, hogy ez a bárki éppen te magad is lehetsz a saját gépeden, ami egyben PHP szerverként is funkcionál a fejlesztés idején.Szerver és kliens oldal, két egymásról semmit sem tudó, tökéletesen független dolog, amik HTTP-n keresztül kommunikálnak.
HTTP request: bármelyik oldal tud http requestet indítani és válasz json-t fogadni.
Api-hoz ez úgy jön, hogy a böngészőben futó kliens oldal Ajax-al (régen, most már Fetch-el) tud http requestet indítani a szerver oldal felé.
És dehogynem kellett, amikor a kártyákat lekérted a js kódodban, a 4-dik sor fetch parancsa egy HTTP GET hívást indít az api felé.
De nyugi, aggodalomra semmi ok a belinkelt dokumentumok pont erről magyaráznak hosszan, és mi is megpróbálunk a magunk szerény módján segíteni. -
edari
őstag
válasz
lanszelot #9506 üzenetére
Sokat kell akkor még olvasgatnod a témában, ha már a http request method-okat se érted.
-
martonx
veterán
válasz
lanszelot #9506 üzenetére
1. Az megvan, hogy mit csinál a Fetch? Http hívást indít a szerver felé. No, és milyen HTTP hívási metódusok vannak? Hát ilyenek: HTTP request methods - HTTP | MDN (mozilla.org) ejnye, hogy ez is dokumentálva van, ráadásul ugyanazon a dokumentációs oldalon
Javaslom ezt is elolvasni.
2. ez esetben azt a részt, hogy miben tér el a jquery.ajax-tól ugord át, hiszen esetedben leszarós, ha sosem használtál jquery-t.
Várom a további konkrét kérdéseket, hogy mi nem érthető a Fetch Api dokumentációja alapján! Látod, ha normálisan leírod, hogy mi a bajod, akkor normális választ kapsz. Sajnos így működik a világ.
-
martonx
veterán
válasz
lanszelot #9504 üzenetére
Elküldtem a tisztán javascriptes dokumentációt. Erre ezt írtad vissza: "A link nem jó, mert jquery, php ..stb, és emiett érthetetlen. Engem csak js alatt érdekelne."
Szóval, ha téged csak js alatt érdekel a fetch api, ami egyébként egy js api, és a küldött dokumentáció csak js dokumentáció, akkor mégis mi az isten nem érthető rajta, és hogy jön ide jquery, php stb... ???
Nem nézlek le, csak hülyeségeket írszés tippre jóval hamarabb írsz, kérdezel hülyeséget, minthogy elolvasnád, amit küldtem, illetve átgondolnád, hogy hányadikán is van elseje.
-
martonx
veterán
válasz
lanszelot #9495 üzenetére
Tényleg nem kell queryselector, a kolléga hibásan mondta.
Class nem erre való. Persze azzal is meg lehet oldani, de ebben az esetben az id tényleg szebb megoldás."fletch" api-ra nem kereshettél valami túl erősen.
Vagy már akkor is hibásan írtad a nevét
Fetch API - Web APIs | MDN (mozilla.org) - itt ami inkább érdekes lehet neked, az a Related topics alatt a using Fetch API, az tele van példákkal. -
Bzozoo
tag
válasz
lanszelot #9493 üzenetére
Volt egy pár tévedésed, de amúgy nem sokat hibáztál.
Például a kartyalap nevű classba akartad írni, amit querySelectorAll-al kell elkapni, és abból is azt az elemét, amelyikbe tenni akarod. Itt most csak egy ilyen class van, az pedig a 0. elem. De jobban jársz, ha az ilyesmit nem class-al, hanem id alapján oldod meg.
Elhagytál innen onnan némi zárójelet és kapcsoszárójelet. -
-
polymorphin
csendes tag
válasz
lanszelot #9293 üzenetére
A video pont arrol szol hogy mi a kulonbseg.
A Complete Guide to Data Attributes | CSS-Tricks - CSS-Tricks#9297
SpeechSynthesis: voiceschanged event - Web APIs | MDN (mozilla.org) -
Bzozoo
tag
válasz
lanszelot #9296 üzenetére
Szerintem ez kell neked https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance/voice
Új hozzászólás Aktív témák
- Dell Latitude 7410 Strapabíró Ütésálló Profi Ultrabook Laptop 14" -80% i7-10610U 16/512 FHD IPS MATT
- Eladó Lian Li O11D MINI-X gépház
- Lenovo ThinkPad P17 Tervező Vágó Laptop -50% 17,3" i7-10750H 32/512 QUADRO T1000 4GB
- FSP DAGGER PRO ATX3.0(PCIe5.0) 850W Sfx tápegység
- Eladó PNY GeForce RTX 4070 Ti SUPER 16GB OC XLR8
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPad Air 4 64GB Kártyafüggetlen 1Év Garanciával
- BESZÁMÍTÁS! Acer Predator Helios 300 Gamer notebook - i7 10750H 16GB DDR4 1TB SSD RTX 2060 6GB WIN10
- AKCIÓ! ASUS PRO WS W790E-SAGE SE alaplap garanciával hibátlan működéssel
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest