Mám predvolené pole napríklad
a=["and","a","in","&"] etc...
Dostávam dynamický text, ktorý ho konvertuje na pole. napríklad.
b=["harry","in","connect"]
Musím zdôrazniť, že sa vyhýbam "v" poľa.
Takže harry a pripojenie bude zvýraznené, ale nie v?
Ako porovnávať alebo kontrolovať pole v jquery?
odpovede:
2 pre odpoveď č. 1môžeš použiť $.inArray
alebo $.grep
, t.j.
var a=["and","a","in","&"];
var b=["harry","in","connect"];
var c = $.grep(b, function(n){
return $.inArray(n,a) == -1;
});
Tým sa vráti nové pole obsahujúce iba slová, ktoré sa v poli nevyskytujú a
Tu je husle: http://jsfiddle.net/kaFvw/
Ak to potrebujete, vrátite pole so všetkými slovami PRESENT v poli a
, stačí zmeniť ==
operátora do !=
1 pre odpoveď č. 2
$.each(b, function(c,d) {
if (d == "in") //do not highlight
});
1 pre odpoveď č. 3
Môžete použiť jquery.each.
jQuery.each(b, function() {
// "this" will hold value . you can do your operation here
if(this!="in")
{
//heighlight
}
});
Viac podrobností nájdete Tu
0 pre odpoveď č. 4
urobte niečo také;
a=["and","a","in","&"]
b=["harry","in","connect"]
var foo;
$.each(b, function() {
if(Query.inArray(this, a)!=-1)
{
foo += "<strong>" + this + "</strong>";
}
else{
foo += this;
}
});
0 pre odpoveď č. 5
Ak som správne pochopil, chcete vyzdvihnúť všetky prvky v druhom poli, ktoré nie sú obsiahnuté v prvom poli. Ak je to tak, tak by to malo fungovať:
for(var i=0,l=b.length;i<l;i++)
{
if(a.indexOf(b[i]) == -1)
{
// highlight b[i]
}
else
{
// do no highlight b[i]
}
}