- Gamepad
- Apple MacBook
- Milyen belső merevlemezt vegyek?
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Kezdő fotósok digitális fényképei
- Milyen processzort vegyek?
- Milyen monitort vegyek?
- Vezetékes FÜLhallgatók
-
PROHARDVER!
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
Hirdetés
- Gamepad
- hdanesz: Hyundai Ioniq 28 kWh 2018 2. felvonás
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Apple MacBook
- Milyen program, ami...?
- Honor 200 Pro - mobilportré
- Milyen belső merevlemezt vegyek?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Kerékpárosok, bringások ide!
- További aktív témák...
- Gamer Laptop, Gamer Monitor és Konzol Felvásárlás Magas Áron, Gyorsan és Egyszerűen!
- LG 55B4 - 55" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- BESZÁMÍTÁS! MSI B550 R7 5700X 32GB DDR4 500GB SSD RTX 3070 8GB ZALMAN Z1 Plus Be quiet! 650W
- BESZÁMÍTÁS! MSI B550M R7 3700X 16GB DDR4 512GB SSD RTX 3060Ti 8GB NZXT H5 Flow RGB 650W
- ÁRCSÖKKENTÉS Panasonic Viera 37" TH-37PV8P plazma TV eladó (2 HDMI)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest