Kako preverim, ali niz vsebuje podrezaje?
Imam nakupovalno košarico, ki prikazuje možnosti izdelka v spustnem meniju in če izberejo "yes", želim narediti nekatera druga polja na strani vidna.
Težava je v tem, da nakupovalna košarica v besedilo vključuje tudi modifikator cene, ki je lahko za vsak izdelek drugačen. Naslednja koda deluje:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str == "Yes (+ $6.95)") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Vendar bi raje uporabil nekaj takega, kar pa ne deluje:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str *= "Yes") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Ukrep želim izvesti le, če izbrana možnost vsebuje besedo "Yes", modifikatorja cene pa ne bi upošteval.
957
3
Kot je ta:
...ali pa uporabite operator tilde:
To deluje, ker
indexOf()
vrne-1
, če niza sploh nismo našli.Upoštevajte, da se pri tem razlikujejo velike in male črke.
Če želite iskanje brez upoštevanja velikih in malih črk, lahko napišete
Ali,
Za to lahko uporabite search ali match.
str.search( 'Yes' )
vrne položaj ujemanja ali -1, če ujemanja ni bilo najdeno.
Druga možnost:
Preizkušeno v brskalnikih Firefox, Safari 6 in Chrome 36