Am un coș de cumpărături care afișează opțiuni de produs într-un meniu vertical și dacă le selectați "da",, vreau să fac ceva în alte domenii pe pagina vizibile.
Problema este că cosul de cumparaturi include, de asemenea, modificator de preț în text, care pot fi diferite pentru fiecare produs. Codul de următoarele lucrări:
$(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();
}
});
});
Cu toate acestea mi-ar folosi mai degrabă ceva de genul asta, care nu't de lucru:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str *= "Yes") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Vreau doar pentru a efectua acțiunea dacă opțiunea selectată conține cuvântul "Da", si-ar ignora modificator de preț.
Astfel:
if (str.indexOf("Yes") >= 0)
...sau puteți folosi tilda operator:
if (~str.indexOf("Yes"))
Acest lucru functioneaza pentru indexOf()
a se întoarce -1
dacă șirul nu't la toate.
Rețineți că acest lucru este case-sensitive. Dacă doriți un caz-insensibil de căutare, puteți scrie
if (str.toLowerCase().indexOf("yes") >= 0)
Sau,
if (/yes/i.test(str))
L's destul de târziu pentru a scrie acest răspuns, dar m-am gândit inclusiv oricum. String.prototip
are acum o metoda "include", care poate verifica pentru subșir. Această metodă este sensibil la majuscule.
var str = 'It was a good date';
console.log(str.includes('good')); // shows true
console.log(str.includes('Good')); // shows false
Pentru a verifica pentru un subșir, următoarele abordări pot fi luate:
if (mainString.toLowerCase().includes(substringToCheck.toLowerCase())) {
// mainString contains substringToCheck
}
Check out documentația pentru a ști mai multe.
Un alt mod:
var testStr = "This is a test";
if(testStr.contains("test")){
alert("String Found");
}
Testat pe Firefox, Safari 6 și Chrome 36
ECMAScript 6 introduce Șir de caractere.prototip.include
, numit anterior "conține".
Acesta poate fi folosit astfel:
'foobar'.includes('foo'); // true
'foobar'.includes('baz'); // false
Se acceptă, de asemenea, opțional, un al doilea argument care specifică poziția în care pentru a începe căutarea:
'foobar'.includes('foo', 1); // false
'foobar'.includes('bar', 1); // true
Acesta poate fi polyfilled pentru a face să funcționeze pe browserele vechi.
include() metodă determină dacă un șir pot fi găsite într-un alt șir de caractere, se întoarce true sau false după caz.
Sintaxă :-string.include(searchString [poziția])
searchString:-Un șir de caractere să fie căutat în acest șir.
poziție:-Opțional. Poziția în acest șir în care pentru a începe căutarea pentru searchString; valoarea implicită este 0.
string = 'LOL';
console.log(string.includes('lol')); // returns false
console.log(string.includes('LOL')); // returns true
Știu că cel mai bun mod este de str.indexOf(s) !== -1;
http://hayageek.com/javascript-string-contains/
Sugerez un alt mod(str.înlocui(s1, "") !== str
):
var str = "Hello World!", s1 = "ello", s2 = "elloo";
alert(str.replace(s1, "") !== str);
alert(str.replace(s2, "") !== str);
Dacă sunteți capabil de a utiliza biblioteci, ați putea găsi că Lo-Dash JS biblioteca este destul de util. În acest caz, du-te si verifica _.conține()
(înlocuit de _.include()
ca de v4).
(Notă Lo-Dash convenție este numirea biblioteca obiect _. Don't uitați să verificați instalarea în aceeași pagină să-l configurați pentru proiectul dumneavoastră.)
_.contains("foo", "oo"); // → true
_.contains("foo", "bar"); // → false
// Equivalent with:
_("foo").contains("oo"); // → true
_("foo").contains("bar"); // → false
În cazul dumneavoastră, mergeți mai departe și de a folosi:
_.contains(str, "Yes");
// or:
_(str).contains("Yes");
..orice unul care vă place mai bine.
De asemenea, puteți verifica dacă cuvântul exact este conținută într-un șir. E. g.:
function containsWord(haystack, needle) {
return (" " + haystack + " ").indexOf(" " + needle + " ") !== -1;
}
Utilizare:
containsWord("red green blue", "red"); // true
containsWord("red green blue", "green"); // true
containsWord("red green blue", "blue"); // true
containsWord("red green blue", "yellow"); // false
Acesta este modul în jQuery face hasClass metodă.
Nici unul dintre cele de mai sus a lucrat pentru mine ca erau spații goale, dar acest lucru este ceea ce am făcut
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
bottab.style.display="none";
bottab2.style.display="none";
if (td) {
var getvar=td.outerText.replace(/\s+/, "") ;
if (getvar==filter){
tr[i].style.display = "";
}else{
tr[i].style.display = "none";
}
}
}
puteți defini o metodă de prelungire și de a folosi mai târziu.
String.prototype.contains = function(it)
{
return this.indexOf(it) != -1;
};
astfel încât să puteți utiliza în pagina dvs. de oriunde, cum ar fi:
var str="hello how are you";
str.contains("are");
care se întoarce adevărat.
Consultați mai jos post pentru mai multe metode de helper. Javascript metode helper