webForumDet fria alternativet

indexof() krånglar till?

JavaScript

3 svar · 516 visningar · startad av swingman

Medlem sedan jan. 200686 inlägg
Frågan#1

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?

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);
			}
		}
	}
}
Medlem sedan juni 20019 519 inlägg
#2

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

Medlem sedan jan. 200686 inlägg
#3

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.

Medlem sedan juni 20019 519 inlägg
#4

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?

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)