2013-07-06, 02:13
  #1
Medlem
Paer86s avatar
Hej!

Jag håller på med ett skolprojekt om att skapa en skrivmaskin i javascript. Det har gått bra fram tills nu, då jag vill göra en funktion som räknar alla bokstäver (inte punkter, komman etc). Problemet är att när jag bara på test försöker skriva ut den globala textvariablen får jag bara [Object Text] och jag förstår inte varför. Om jag tar variabeln.length får jag ju ut antalet tecken.

Bifogar koden här. Obs, den sista räknefunktionen är alltså inte klar, jag tror jag kan lista ut den bara jag får det att funka att den skriver ut strängen. Jag låter lärarens kommentarer vara kvar också.

--------------------------------------

"use strict";

var currentParagraph = null;
var counter = 0;
/*
* Du bör också ha en variabel som håller reda på
* hur många paragrafer du har satt ut, så att du
* kan märka upp dem med klasserna even/odd
*/


/*
* Den här funktionen anropas då man trycker på en
* av knapparna med en bokstav, punkt,
* kommatecken eller mellanslag.
*
* Funktionsparametrar:
* c - Variabel som innehåller ett tecken
*/
function addLetter(c){

if(currentParagraph == null)
addParagraph();

else
currentParagraph.appendData(c);

/*
* Här bör du kolla om din globala textnodsvariabel har ett värde,
* om den är null så anropar du addParagraph
*/


/*
* Här bör du lägga in tecknet c till den sparade textnoden
*/
}

/*
* Den här funktionen anroas då man trycker
* på Enter knappen
*/
function addParagraph() {

var element = document.createElement("p");
var node = document.createTextNode(" ");

element.appendChild(node);
document.getElementById("output").appendChild(elem ent);

if(counter % 2 == "1")
element.setAttribute("class", "odd");
else
element.setAttribute("class", "even");

counter++;

currentParagraph = node;

}


function countLetters() {
var count=0;

alert(currentParagraph);
alert(currentParagraph.length);

/*
* Här räknar du antalet bokstäver (a-z) som finns
* i den nuvarande paragrafen (dvs i din globala textnod).
* Antalet bokstäver sparar du till variabeln 'count'.
*/


/*
* Sen avslutar vi med att returnera count variabeln
*/
return count;
}
Citera
2013-07-06, 02:29
  #2
Medlem
key33s avatar
Sätt koden i 'code taggar' så blir det lättare att se vad du har gjort.
Citera
2013-07-06, 09:48
  #3
Medlem
Paer86s avatar
Ah förlåt, visste inte att man kunde.

Kod:
"use strict";

var currentParagraph = null;
var counter = 0;
/*
* Du bör också ha en variabel som håller reda på
* hur många paragrafer du har satt ut, så att du
* kan märka upp dem med klasserna even/odd
*/


/* 
* Den här funktionen anropas då man trycker på en 
* av knapparna med en bokstav, punkt, 
* kommatecken eller mellanslag.
*
* Funktionsparametrar:
* c - Variabel som innehåller ett tecken
*/
function addLetter(c){

if(currentParagraph == null)
addParagraph();

else
currentParagraph.appendData(c);

/*
* Här bör du kolla om din globala textnodsvariabel har ett värde,
* om den är null så anropar du addParagraph
*/


/*
* Här bör du lägga in tecknet c till den sparade textnoden
*/
}

/*
* Den här funktionen anroas då man trycker
* på Enter knappen
*/
function addParagraph() {

var element = document.createElement("p");
var node = document.createTextNode(" ");

element.appendChild(node);
document.getElementById("output").appendChild(elem ent);

if(counter % 2 == "1")
element.setAttribute("class", "odd");
else
element.setAttribute("class", "even");

counter++;

currentParagraph = node;

}


function countLetters() {
var count=0;

alert(currentParagraph);
alert(currentParagraph.length);

/*
* Här räknar du antalet bokstäver (a-z) som finns 
* i den nuvarande paragrafen (dvs i din globala textnod).
* Antalet bokstäver sparar du till variabeln 'count'.
*/


/*
* Sen avslutar vi med att returnera count variabeln
*/
return count;
}
Citera
2013-07-06, 12:53
  #4
Medlem
Tvillingens avatar
Tror att det borde fungera om du använder dig av currentParagraph.textContent istället!
Citera
2013-07-06, 13:04
  #5
Medlem
Paer86s avatar
Det funkade! Tack så mycket.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in