2016-04-17 10 views
1

Ich möchte den Text einer Box sehen, und wenn es mit einem Wert übereinstimmt, der in einem ARRAY gespeichert ist, möchte ich etwas damit machen.indexof Suche nach mehr Wert

var ARRAY1 = ["Saab", "Volvo", "BMW"]; 
if (select[i].innerHTML.indexOf('ARRAY1') != -1){//code here} 

So wie Sie sehen, ich will die indexOf wahr geben, wenn einer der Array-Wert angepasst ist.

Antwort

0

Ich denke, Sie so etwas wie

var ARRAY1 = ["Saab", "Volvo", "BMW"], 
    compareFunction = function(e) { return select[i].innerHTML.indexOf(e) !== -1; }; 

if (ARRAY1.filter(compareFunction).length) {//code here} 

Hier compareFunction haben wollen, ist eine Funktion, die auf jedem Array-Element gegen Ihre ausgewählten aufgerufen wird HTML des Einzelteils. Nachdem alle Elemente im Array durchlaufen wurden, werden nur Übereinstimmungen zurückgegeben, sodass die Länge positiv ist, wenn Übereinstimmungen gefunden werden. Sie könnten auch interessiert sein, some statt filter zu verwenden - hängt davon ab, was Sie wollen.

+0

Es war das Ding, nach dem ich suchte! Vielen Dank! –

0

Schalten Sie einfach den ARRAY1 mit select [i] .innerHTML

var ARRAY1 = ["Saab", "Volvo", "BMW"]; 
if (ARRAY1.indexOf(select[i].innerHTML) != -1){//code here} 

auch Sie diese Tutorials für js besuchen konnte.

http://www.w3schools.com/jsref/jsref_indexof_array.asp

Prototype.includes(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

+0

Warum überhaupt w3schools verwenden, wenn Sie bereits MDN kennen? w3schools ist immer noch eine schlechte Referenz – mplungjan

+0

Ich brauche das Gegenteil. Ich habe ein Array mit Wörtern und ich habe das div auf der Website mit einem Wort. Wenn dieses Wort in der Liste (im Array) ist, dann möchte ich etwas tun –

+0

In diesem Fall verwende: for (var j in ARRAY1) {if (wähle [i] .innerHTML.indexOf (ARRAY1 [j]) { // Code hier})} –