Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 遍历数组以在<;中查找文本;部门>;?_Javascript_Jquery_Html_Typescript - Fatal编程技术网

Javascript 遍历数组以在<;中查找文本;部门>;?

Javascript 遍历数组以在<;中查找文本;部门>;?,javascript,jquery,html,typescript,Javascript,Jquery,Html,Typescript,我这里有一段HTML: <span id="titletextonly">Some awesome text</span> 一些很棒的文本 使用此Javascript: let divs= $("#titletextonly"); let array = ['wow', "text"]; for (let i = 0; i < divs.length; i++) { if (array.includes(divs[i].innerHTML)) {

我这里有一段HTML:

<span id="titletextonly">Some awesome text</span>
一些很棒的文本
使用此Javascript:

let divs= $("#titletextonly");
let array = ['wow', "text"];

for (let i = 0; i < divs.length; i++) {
   if (array.includes(divs[i].innerHTML)) {
    divs.css("background-color","red");
  }
}
let divs=$(“#titletextonly”);
让数组=['wow',“text”];
for(设i=0;i
我试图让它找到数组中的一段文本是否在元素中

对于现在的代码,它只会突出显示文本,如果它确实是文本,没有像我现在这样的小文本块


任何改进代码的帮助都将是巨大的

由于您正在使用
id
进行选择,因此无需对其进行循环

// target the element
let divs = $("#titletextonly");
 // array of matched element
let array = ['wow', "text"];

// loop over the array and get each item
array.forEach(function(item) {
   // Now check if the selected text have this item
   // if the item is found in the string, then add background color
  if (divs.text().trim().indexOf(item !== -1)) {
    divs.css("background-color", "red")
  }
})

您的问题在这里:
array.includes(divs[i].innerHTML)

它看起来像:
['wow',“text”]。包括(“一些很棒的文本”)
。但您希望匹配语句中的单个单词,而不是整个语句。为此,您必须在文本和数组中的单词上循环查找匹配项

样本:
let divs=$(“.titletextonly”);
让数组=['wow',“text”];
for(设i=0;idivs[i].innerHTML.indexOf(x)>-1)){
第eq(i)部分css(“背景色”、“红色”);
}
}

一些很棒的文字

一些随机词
您需要检查数组中的每个项是否包含在某个div中,例如:

let divs=$(“#titletextonly”);
让数组=['wow',“text”];
for(设i=0;i


一些很棒的文本
您可以使用
数组#Some
方法来迭代字符串的
数组
,并检查您的
div是否包含每个文本片段:

let divs=$(“#titletextonly”)
让数组=['wow','text']
每个分区(功能(i){
数组.some(函数(文本){
返回this.text().includes(text)和&this.css('background-color','red')
},$(本)
})

一些很棒的文字
我想是这样的。
let divs=$(“.titletextonly”);
让数组=['wow',“text”];
for(设i=0;i

一些很棒的文字
一些很棒的文字

在匹配的div上循环,然后在数组匹配值上循环。使用
.includes()
比较这两个字符串;可以使用CSS类应用样式:

let$divs=$('.text');
让数组=['wow','text'],
len=数组长度;
$divs.each(函数(){
设$div=$(这个);
对于(变量i=0,n=len;i
。匹配{
背景色:红色;
}

哇哇哇哇
这个没有

这确实有文本
您能提供一个工作和非工作的JSFIDLE示例吗?使用为什么不创建一个堆栈片段?最好使答案独立于任何重定向。我已将代码包装在代码段中,但出现了一个错误。“未捕获的TypeError:divs[i].css不是函数”请根据您的轻松程度进行编辑。完成。感谢您的包装,在手机上无法轻松完成。使用innerHTML将销毁事件并触发DOM的重新生成!改用