Comment puis-je vérifier si une div contient un mot particulier?
var divs= document.getElementsByTagName('div');
for (var i = 0, len = divs.length; i < len; ++i) {
if (divs[i].text = '*Word*'){
//do somthing
}
}
ne fonctionne pas.
utiliser la fonction indexOf
if(divs[i].innerHTML.indexOf("Word") !== -1) {
// something
}
Utilisez includes()
:
node.textContent.includes('Some text');
if (document.getElementById('divId').innerHTML.indexOf("Word") != -1) { }
Gosh, tant de réponses!
Pour obtenir uniquement le texte d'un élément, le moyen le plus simple consiste à utiliser textContent ou, s'il n'est pas pris en charge, innerText . Tous les navigateurs utilisés prennent en charge l’un ou l’autre (peut-être les deux). Vous pouvez également utiliser une expression régulière (indexOf fonctionne aussi, une RegExp n'est qu'une option) pour:
var re = new RegExp('*' + Word + '*');
if (re.test(div[i].innerText || div[i].textContent)) {
// div[i] contains /*Word*/
}
Une solution plus robuste serait comme:
function getText(el) {
if (typeof el.textContent == 'string') {
return el.textContent;
}
if (typeof el.innerText == 'string') {
return el.innerText;
}
}
var re = new RegExp('*' + Word + '*');
if (re.test(getText(div[i]))) {
// div[i] contains /*Word*/
}
Essayez la String.indexOf()
fonction: if (divs[i].text.indexOf('Word') != -1) {
Vous devez utiliser un opérateur de comparaison et non attribuer une variable.
if (divs[i].text == '*Word*'){
Je recommanderais d'utiliser indexOf
.
if (divs[i].text.indexOf('*Word*') != -1){
utilisez regexp:
if ( divs[i].textContent.match ( /\bword\b/ ) ){
//do something
}
@RobG me le rappelle
if ( divs[i].innerHTML.match ( /\bword\b/ ) ){
//do something
}
= 3 =