我需要在按类找到的div内容中找到带有.search()
的数组元素。每当我尝试查找数组的元素时,尽管都应该找到它,但我找不到它。我需要修复此错误或改进代码,该怎么办?
var myBtn = document.getElementsByClassName("myBtn");
var fjscolor2 = ["hola",
"Aqua-Natural",
"Gris/Decape",
"ul",
"title",
"div",
"hola",
"Amarillo-Natural"];
var resultado = "";
var pos = -1
// alert("Hello!");
//uso foreach para recorrer cada elemento del array
fjscolor2.forEach(function(element) {
for (var i = 0; i < myBtn.length; i++) {
var ejemplo = myBtn[i].innerHTML;
//En caso de existir se asigna la posición en pos
pos = ejemplo.search(element);
//Si existe
if(pos!=-1){
resultado += " Palabra "+element+ "encontrada en la posición "+pos;
}
}
});
//En caso de que no exista.
if(pos === -1){
resultado = "No existe ninguna de las palabras del array.";
}
alert(resultado);
<div class="myBtn">hola 1 earlier.
<div class="myBtn2"><strong>Note:</strong> hola 2
<div class="myBtn2"><strong>Note:</strong> hola 3</div>
</div>
</div>
<p id="demo"></p>
答案 0 :(得分:0)
您的fjscolor2数组包含字符串元素。搜索功能不接受字符串作为参数,而是接受RegExp对象。并且您需要为比赛设置某种计数器,并使用它来设置条件。尝试以下类似的方法。
<html>
<body>
<div class="myBtn">hola 1 earlier.
<div class="myBtn2"><strong>Note:</strong> hola 2
<div class="myBtn2"><strong>Note:</strong> hola 3</div>
</div>
</div>
<p id="demo"></p>
<script>
var myBtn = document.getElementsByClassName("myBtn");
var fjscolor2 = [
"Aqua-Natural",
"Gris/Decape",
"ul",
"title",
"div",
"hola",
"Amarillo-Natural"
];
var counter = 0;
var resultado = "";
var pos = -1
// alert("Hello!");
//uso foreach para recorrer cada elemento del array
fjscolor2.forEach(function(element) {
var regexString = "(" + element + ")";
var regexObj = new RegExp(regexString, 'g')
for (i = 0; i < myBtn.length; i++) {
var ejemplo = myBtn[i].innerHTML;
//En caso de existir se asigna la posición en pos
pos = ejemplo.search(regexObj);
//Si existe
if (pos !== -1) {
counter++;
resultado += " Palabra " + element + " encontrada en la posición " + pos + "\n";
} else {
}
}
});
//En caso de que no exista.
if (counter === 0) {
resultado = "No existe ninguna de las palabras del array.";
}
alert(resultado);
</script>
</body>
</html>