webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > Javascript

Javascript Här diskuteras det som rör Javascript, AJAX, DOM & DHTML.

Svar
 
Trådverktyg Visningsalternativ
Äldre 2012-05-31, 19:27   #1
swingman
Medlem
 
Registrerad: 2006-01-15
Inlägg: 86
Lösningar: 0
indexof() krånglar till?

Det jag vill göra är helt enkelt skriva in text i textruta och när jag klickar på search så vill jag att den texten jag skrivit in jämförs med alla strängar som finns i taggarna <p> och hittas text in någon av strängarna så ska strängen skrivas ut i en alert.
T ex: jag skriver in "eric" in textrutan och en alert med följande text dyker upp

---> Bier, Eric A. (1994). A Taxonomy of See-Through Tools

Min kod fungerar inte. Vad gör jag för fel?
Kod:
window.onload = init;

function init () {
	hideAllPublications();
	createForm();
}

function hideAllPublications () {
	var publications = document.getElementById('publications');
	var para = publications.getElementsByTagName('p');
	
	for(var i = 0; i < para.length; i++){
		para[i].style.display= 'none';
		}
}

function createForm () {
	var publications = document.getElementById('publications');
	var myform=document.createElement("form");
	publications.appendChild(myform)[0];	
    	
	var inputBox=document.createElement('input');
	inputBox.setAttribute('id','myInput');	
	myform.appendChild(inputBox)[0];	
	document.getElementById('myInput').focus();

    	mybutton=document.createElement('BUTTON');
	mybutton.style.height=20;
	mybutton.style.width=75;
    
    	theText=document.createTextNode('Search');//assign the value of the button
    	mybutton.appendChild(theText);	
	myform.appendChild(mybutton);
	
	
	mybutton.onclick = function() {
	var str= document.getElementById('myInput').value;
	//alert(str);
	var para = publications.getElementsByTagName('p');


	for(var i = 1; i < para.length; i++){
			var nuvarandepubl = para[i].firstChild.nodeValue;
			//alert(nuvarandepubl);
			if(nuvarandepubl.indexOf(str)>= 0){
			alert(nuvarandepubl);
			}
		}
	}
}
swingman besöker inte forumet just nu   Svara med citat
Äldre 2012-05-31, 20:15 Markerad som löst av swingman   #2
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
indexOf kräver att det är "eric" inte "Eric" du få kolla med regex och köra ignorecase på texten du söker efter. så det är inget fel på indexOf
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
voigtann1 besöker inte forumet just nu   Svara med citat
Äldre 2012-05-31, 20:25   #3
swingman
Medlem
 
Registrerad: 2006-01-15
Inlägg: 86
Lösningar: 0
Sant det.... det fungerar att bara söker "eric" och inte Eric. Så tack ska du ha för hjälpen ännu en gång.
swingman besöker inte forumet just nu   Svara med citat
Äldre 2012-05-31, 20:32   #4
voigtann1
Forumvärd
 
voigtann1s avatar
 
Registrerad: 2001-06-14
Ort: Helsingborg
Inlägg: 8 502
Lösningar: 537
fungera för mig: http://jsfiddle.net/aqxTW/ vad säger fel-loggen för dig?

för övrigt så tror jag inte du vill börja på ett index på 1, du hämtar ut alla p-element och jag gissar på att det är alla p du vill jämföra med, eller har jag fel?
__________________
"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
voigtann1 besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > Javascript

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 13:42.


Powered by: vBulletin Version 3.8.6
Copyright © webForum