使用:Chrome
$porn = [''];
$.getJSON('https://cdn.rawgit.com/aredo/porn-site-list/master/sites.json',function(data){
$(data).each(function(index,value){
$pornlist = value.host;
$porn.push($pornlist);
});
$('.urlinput').on('input',function(){
$text = $(this).val();
if (jQuery.inArray($porn,$text) != -1) {
//Porn site not allow
console.log('in webiste')
} else {
//Not porn site allow
console.log('not in website')
}
});
});
答案 0 :(得分:2)
jQuery.inArray($text, $site) >-1
是关键。如果没有匹配,则返回-1而不是索引。
演示:http://codepen.io/8odoros/pen/aZJPgV
$site = ['google','facebook','twitter'];
//$('.urlinput').on('input',function(){
//$text = $(this).val();
$text = 'facebook';
if (jQuery.inArray($text, $site) >-1) {
console.log('in webiste')
}else {
console.log('not in website')
}
// });
答案 1 :(得分:2)
尝试:
$site = ['google','facebook','twitter'];
$text = 'facesbook';
if (jQuery.inArray($text, $site) !== -1 ) {
console.log('in webiste')
}else {
console.log('not in website')
}
答案 2 :(得分:1)
您的问题是将结果与true
进行比较。 $.inArray
(与indexOf
一样)返回一个整数值。 -1
如果找不到该元素,并且如果找到该元素,则它在数组中为索引。因此,如果在索引true
找到元素,则在-1
或> 0
和false
时,您的逻辑将返回0
。
要解决此问题,请与-1
进行比较:
if (jQuery.inArray($text, $site) != -1) {
console.log('in webiste')
} else {
console.log('not in website')
}
答案 3 :(得分:1)
$.inArray($string, $array)
返回数组中元素的索引(如果它存在于数组中)。如果未找到该元素,则返回-1
$site = ['google', 'facebook', 'twitter'];
$text = 'facebook';
if ($.inArray($text, $site) !== -1) {
console.log('in webiste')
} else {
$.log('not in website')
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 4 :(得分:-1)
您需要运行循环并测试值
for ( var i = 0; i < $site.length; i++){
if ( $site[i] == $text) {
console.log('in webiste')
}else {
console.log('not in website')
}
}