我正在尝试创建一个字符串数组,并使用indexOf函数检查文本是否存在于<td>
上,是否要执行,否则什么都不做?
例如。<td>
上存在一个,因此indexOf识别执行
问题在于,当我不使用数组时,此代码无法正常工作。
更新-谢谢indexOf正常工作,但是我在var str上使用数组的方式似乎不起作用。
HTML
<tbody>
<td><a href='#'>One</a></td>
<td>No.</td>
</tbody>
jQuery
var array = ['One', 'Two', 'Three', 'Four'];
var str = $('td:contains(" + array + ")').text();
if(array.indexOf(str) > -1){
console.log('Array works');
}
任何帮助将不胜感激
答案 0 :(得分:1)
您使用错误的方法。在这种情况下,您需要indexOf()
的{{1}}原型,而不是字符串,因此您的逻辑应该是:
Array
答案 1 :(得分:1)
按照@BenM的指定,.indexOf()
方法没有用这种方式。
也许该片段有用:
var array = ['One', 'Two', 'Three', 'Four'];
// iterate over every <td> element found in the page with the .each() function
$('td').each(
function(){
if(array.indexOf($(this).text()) > -1){
console.log('"' + $(this).text() + '" was found in the array');
}
}
);
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<table>
<tbody>
<td><a href='#'>One</a></td>
<td>No.</td>
</tbody>
</table>
</body>
</html>