Skocz do zawartości

Js zadanie


Recommended Posts

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>
Link to post
Share on other sites

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 przez Karister
  • Popieram 1
Link to post
Share on other sites
  • 4 tygodnie później...

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">&nbsp</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>
Link to post
Share on other sites

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ą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...