gpt4 book ai didi

javascript - 从 DIV 创建数组,然后检查相似性

转载 作者:行者123 更新时间:2023-12-03 08:45:21 26 4
gpt4 key购买 nike

必须制作一个表单并检查用户是否在文本区域中写入了某个单词。所有这些单词都位于由 div 创建的数组中。我陷入了验证部分,我认为我没有以正确的方式创建数组。

检查这个jsfiddle更好地理解我想要做什么。

<select class="items"></select>
<textarea></textarea>
<div class="sport md">
<p class="word">word1</p>
<p class="word">word2</p>
<p class="word">word3</p>
</div>
<div class="culoare md">
<p class="word">word1</p>
<p class="word">word2</p>
<p class="word">word3</p>
</div>

// POpulare selectbox with options
var menu = ['sport', 'culoare'];
var op = '';
for (var i = 0; i < menu.length; i++) {
op += '<option value="' + menu[i] + '">' + menu[i] + '</option>';
}
$('.items').append(op);
$('.items').on('change', function () {
$('.md.active').removeClass('active');
var appWords = $('.md.' + $(this).val());
if (appWords.length) {
appWords.addClass('active');
}
});

var array = new Array();
$('.md').each(function () {
array.push($(this).children());
});
$('textarea').on('keyup', function () {
console.log(array);
var key = $(this).val().split(' ');
console.log(key);
if (key.indexOf(array) > -1) {
console.log('match');
}
});

.md{
display:none;
}
.md.active{
display:block;
}

最佳答案

您是正确的,因为您的阵列没有正确构建。您有一个段落元素数组。您想要的是这些段落元素的文本数组。为此,请使用 jQuery .map() 函数。

var array = $(".md p").map(function(){
return $(this).text();
});

您最后的匹配比较也存在问题。你有 2 个数组。您不能使用 indexOf 来查找两个数组的相交位置。使用 jQuery $.grep 和 $.inArray。

var common = $.grep(key, function(element) {
return $.inArray(element, array ) !== -1;
});

查看你的 fiddle 的更新: http://jsfiddle.net/1skw4e2b/1/

关于javascript - 从 DIV 创建数组,然后检查相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32912676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com