Corr 161 Napisano 27 Września 2016 Udostępnij Napisano 27 Września 2016 Witam.Otóż mam zadanie,którego nie potrafię zrobić .W javascript jestem zielony :v Zadani brzmi tak: Znajdź słowo w podanym tekscie i podkreśl je. przykładowy tekst: "ten testowy tekst te słowa testowe testuje: te, ten, Bartek, potencjał, plater. Te." szukasz: "te" podkreśla trzy słowa "te" (bez znaków interpunkcyjnych) uwagi: - weź pod uwagę znak "," i "." - zakładamy poprawność tekstu (spacje po interpunkcji) - wielkość czcionki nie gra roli. Poniżej kod,którym "jakoś" próbowałem to rozwiązać.Niestety bezskutecznie. Z góry dziękuję za pomoc <!DOCTYPE html> <html> <head> <script> aa=prompt("Wklej zdanie :", "ten testowy tekst te sl�owa testowe testuje: te, ten, Bartek, potencja�, plater. Te.") a=aa.toLowerCase(); ss=prompt("Jakiego slowa szukamy :","te") s=ss.toLowerCase(); r = a.split(" "); console.log(r) //console.log(r[2]) console.log(r.length) var txt; for(var i=0;i<r.length;i++){ //console.log(r[i]) q=r[i] if(q=="te"){ q.strike() document.write(a) } //last=q[q.length-1] //console.log(last) } //var last=imie[imie.length-1] //var str = "Hello World!"; //var result = str.strike(); </script> </head> <body> </body> </html> Cytuj Link to post Share on other sites
Karister 727 Napisano 28 Września 2016 Udostępnij Napisano 28 Września 2016 (edytowane) Czy jesteś pewien, że chcesz to robić w konsoli? JS jest odpalany przez przeglądarkę internetową i jest szansa, że w jednej zadziała, a w drugiej nie. Część przeglądarek nie potrafi kolorować/podkreślać teksu w konsoli. Tu jest to opisane wraz z przykładem. To zadanie jest debilnie opisane i nie wiadomo, co trzeba zrobić. Jeśli to jest zadanie ze szkoły i właśnie tak brzmi treść zadania, jak podałeś tutaj, mam radę dla nauczyciela: niech stanie przy ścianie, przodem do przeciwległej, weźmie solidny rozpęd i porządnie przywali czołem. Tak mocno, aby odechciało mu się bycia nauczycielem. Ogólnie, JS służy, przynajmniej w swojej podstawowej postaci, do manipulowania dokumentem HTML. Nie do liczenia pierwiastków funkcji kwadratowej, kolorowanie tekstu, itp. Natomiast skoro już JS, ja bym to zadanie zrobił jako stronę www. I wtedy to zadanie ma sens. Tzn: W HTML wrzuciłbym div z testowanym tekstem: <div id="main">tekst tekst tekst</div> W CSS wrzucił klasę do podkreślania tekstu: .underline {text-decoration: underline;} W JS stworzył listę ze słowami do podkreślenia: var keyWords = ['słowo1', 'słowo2']; oraz funkcję, która przeiteruje powyższą tablicę i każde słowo zastąpi w tekście spanem z odpowiednią klasą CSS: function undelineWords() { var text = document.getElementById("main").innerText; for (var i = 0; i < keyWords.length; i++) { var currentWord = keyWords[i]; text = tex.split(currentWord).join('<span class="underline">currentWord</span>'); } document.getElementById("main").innerText = text; } Na koniec wywołać ją, gdy HTML się załaduje (nie zadziała w IE8 i starszych): document.addEventListener("DOMContentLoaded", function() { undelineWords(); }); Pisane z palca, więc mogą być jakieś niedociągnięcia. EDYTKA: Zamiast zapinać listener na załadowanie się HTMLA, lepiej dodać button, który będzie ten tekst podkreślał po kliknięciu poprzez wywołanie funkcji. Edytowane 28 Września 2016 przez Karister 1 Cytuj Link to post Share on other sites
Corr 161 Napisano 23 Października 2016 Autor Udostępnij Napisano 23 Października 2016 Dzięki za pomoc w poprzednim zadaniu,teraz mam trochę inny problem.Czy da się jakoś łatwo zmienić ten kod,żeby program nie wykonywał się po kliknięciu buttona tylko od razu po załadowaniu strony? Z góry dzięki za pomoc. <script> var button = document.getElementById("button") function all () { function mark(size, horizon, x, y) { for (var i = 0; i < size; i++) { document.getElementById('area' + x + '_' + y).classList.remove("nope"); document.getElementById('area' + x + '_' + y).classList.add("ship"); if (horizon) { x++; } else { y++; } } } function isShipAvailable(size, horizon, x, y) { for (var i = 0; i < size; i++) { if(document.getElementById('area' + x + '_' + y).classList.contains("ship")==true) { return false; } if(y>1) { if(document.getElementById('area' + x + '_' + (y-1)).classList.contains("ship")==true) return false; } if(y<10) { if(document.getElementById('area' + x + '_' + (y+1)).classList.contains("ship")==true) return false; } if(x>1) { if(document.getElementById('area' + (x-1) + '_' + y).classList.contains("ship")==true) return false; } if(x<10) { if(document.getElementById('area' + (x+1) + '_' + y).classList.contains("ship")==true) return false; } if(y>1 && x>1) { if(document.getElementById('area' + (x-1) + '_' + (y-1)).classList.contains("ship")==true) return false; } if(y>1 && x<10) { if(document.getElementById('area' + (x+1) + '_' + (y-1)).classList.contains("ship")==true) return false; } if(y<10 && x<10) { if(document.getElementById('area' + (x+1) + '_' + (y+1)).classList.contains("ship")==true) return false; } if(y<10 && x>1) { if(document.getElementById('area' + (x-1) + '_' + (y+1)).classList.contains("ship")==true) return false; } if (horizon) { x++; } else { y++; } } return true; } function randomTier() { return Math.random()>=0.5 ?true:false; } function randomCoord(coordinate, size, isLevel) { var max = 10; if(coordinate=="x") { if (isLevel) max = 10 - size; } else { if(!isLevel) max = 10 - size ; } return Math.floor((Math.random() * max))+1; } (function() { for (var j = 0; j <= 10; j++) { for (var i = 0; i <= 10; i++) { var temp = "" if (j == 0 && i > 0) { } else if (i == 0 && j > 0) { } else { temp = '<div id="area' + i + '_' + j + '"' + 'class="nope"> </div>'; } if (i == 10) { temp += '</br>'; } document.getElementById("plansza").innerHTML += temp; } } var shipper = [4,3,3,2,2,2,1,1,1,1,]; var spr =0; for (var i =0; i<shipper.length;i++) { do { var isLevel=randomTier(); var x=randomCoord("x",shipper[i],isLevel); var y=randomCoord("y",shipper[i],isLevel); } while (!isShipAvailable(shipper[i], isLevel, x, y)); mark(shipper[i],isLevel,x,y); } }) () }; button.onclick = all; </script> Cytuj Link to post Share on other sites
Karister 727 Napisano 23 Października 2016 Udostępnij Napisano 23 Października 2016 window.onload = all 1 Cytuj Link to post Share on other sites
Recommended Posts
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.