![]() |
|
|
|||||||
| Javascript Här diskuteras det som rör Javascript, AJAX, DOM & DHTML. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
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);
}
}
}
}
|
|
|
|
|
|
Markerad som löst av swingman #2 |
|
Forumvärd
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 |
|
|
|
|
|
#3 |
|
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.
|
|
|
|
|
|
#4 |
|
Forumvärd
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 |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|