Jquery 如何制作';这';在选项上正常工作?
所以我试图让“这个”正常工作,但我相信我在某个地方犯了一个错误,使得“这个”选择每个选项而不是单个选项 我试过使用“.each”函数,但没有 这是我的jQuery代码Jquery 如何制作';这';在选项上正常工作?,jquery,Jquery,所以我试图让“这个”正常工作,但我相信我在某个地方犯了一个错误,使得“这个”选择每个选项而不是单个选项 我试过使用“.each”函数,但没有 这是我的jQuery代码 $('<input type="text" class="beruf-suche" placeholder="Berufsuchen"/>').insertAfter('.home-page .field_beruf label'); var beruf_suche_option = $( '.home-pag
$('<input type="text" class="beruf-suche" placeholder="Berufsuchen"/>').insertAfter('.home-page .field_beruf label');
var beruf_suche_option = $( '.home-page .field_beruf select option' );
var beruf_suche_option_val = $( '.home-page .field_beruf select option' ).val();
$('.beruf-suche').keyup(function() {
if (this.value == beruf_suche_option_val) {
$(beruf_suche_option).each(function() {
$(this).show();
});
}
else {
$(beruf_suche_option).hide();
}
});
$('').insertAfter('.home page.field_beruf label');
var beruf_suche_option=$('.home page.field_beruf select option');
var beruf_suche_option_val=$('.home page.field_beruf select option').val();
$('.beruf suche').keyup(函数(){
if(this.value==beruf\u suche\u option\u val){
$(beruf_suche_选项)。每个(函数(){
$(this.show();
});
}
否则{
$(beruf_suche_选项).hide();
}
});
当我在输入文本框中键入内容时,如果:输入框中的文本==选项值,则该选项应出现。问题在于您正在对元素集合调用
val()
,因此结果将仅为第一个选项的值
要解决这个问题,您需要循环所有选项,并在该循环中执行比较。然后,还可以将比较的布尔结果传递给toggle()
,从而使循环更加简洁。试试这个:
var$beruf_suche_option=$('.home page.field_beruf select option');
$('.beruf suche').keyup(函数(){
var beruf_suche_val=this.value.trim();
$beruf_suche_选项。每个(函数(){
$(this.toggle)(beruf_suche_val==this.value);
});
});
您可以尝试类似的方法,并且可以根据您想要匹配的内容(val或文本)非常轻松地对其进行修改
HTML:
您需要遍历所有选项
元素,并分别比较它们的值。$(beruf\u suche\u选项)。每个(function()
都应该是beruf\u suche\u选项。每个(function())
@LelioFaieta它们是等效的,his只是效率稍低一些,因为它创建了一个新的jQuery对象。@Barmar不会第一个返回$($('.home page.field\u beruf select option'))
?@LelioFaieta是的。但是如果$()
是一个jQuery集合,它返回一个具有相同元素的新集合。感谢您的澄清,它很有效。向您致意。
<input type="text" class="beruf-suche" placeholder="Berufsuchen"/>
<select>
<option value="" readonly selected>Select An Option</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
var beruf_suche_options = $( 'select option' );
$('.beruf-suche').keyup(function() {
var html = beruf_suche_options.filter( function (index) {
return (this.value == $(".beruf-suche").val() || this.value === "");
});
$("select").html(html);
});