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 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);
}
}
}
}
