私のコメントに対するアンドリューの答えは、この質問を引き起こしました。
上記のリンクの彼の素晴らしい答えによると、質問の下部にあるコードは1つのウィジェットでのみ機能します。しかし、それはキラーな素晴らしいコードであり、理にかなっています...私は両方の世界の長所が欲しいと思います。ニースJS、(可能であれば)そしてゼロの結果を得るshow()には、その時点で使用している要素だけを使用します。
このコードスニペットは、私が見ているように、私の問題の主な核心です。
ソース:関数(要求、応答){
jQuery.ajax({
url: "/ autocomplete.json"、
データ: {
用語:request.term
}、
成功:関数(データ){
if(data.length == 0){
jQuery('span.guest_investor_email')。show();
jQuery('span.investor_field_delete_button')。show();
}
response(data);
}
});
現在:
ページに「情報を追加」というボタンがあり、クリックするたびに、オートコンプリートテキストフィールドの新しいインスタンスが表示され、いくつかの非表示フィールドとdisplay:none;オンが表示されguest_investor_emailます。オートコンプリートテキストフィールドを3回使用し、ページに3つのオートコンプリートインスタンスがあり、3番目のインスタンスで0の結果が見つかった場合:コードは、空白の1つguest_investor_emailだけではなく、テキストフィールドの3つのインスタンスすべてをshow()します。 this。
質問:
どうすれば
jQuery(this).siblings(('span.guest_investor_email').show();仕事のようなものを手に入れることができますか?
thisはオブジェクトであり、選択する要素の配列ではありません。それがない場合、this私がそれを取得する方法を知っている限り、私は気にしません。ありがとう。
完全なコード:
jQuery( "。auto_search_complete")。live( "click"、function(){
jQuery(this).autocomplete({
minLength:3、
ソース:関数(要求、応答){
jQuery.ajax({
url: "/ autocomplete.json"、
データ: {
用語:request.term
}、
成功:関数(データ){
if(data.length == 0){
jQuery('span.guest_investor_email')。show();
jQuery('span.investor_field_delete_button')。show();
}
response(data);
}
});
}、
フォーカス:function(event、ui){
jQuery(this).val(ui.item.user?ui.item.user.name:ui.item.pitch.name);
falseを返します。
}、
選択:function(event、ui){
jQuery(this).val(ui.item.user?ui.item.user.name:ui.item.pitch.name);
jQuery(this).siblings('div.hidden_fields')。children('。poly_id')。val(ui.item.user?ui.item.user.id:ui.item.pitch.id);
jQuery(this).siblings('div.hidden_fields')。children('。poly_type')。val(ui.item.user? "User": "Pitch");
jQuery(this).siblings('span.guest_investor_email')。hide();
jQuery(this).siblings('span.investor_field_delete_button')。show();
jQuery(this).attr('readonly'、'readonly');
jQuery(this).attr('id'、 "投資家が選択しました");
falseを返します。
}
})。each(function(){
jQuery(this).data( "autocomplete")._ renderItem = function(ul、item){
jQuery("を返す")
.data( "item.autocomplete"、item)
.append( ""+(item.user?item.user.name:item.pitch.name)+"
"+(item.user?item.user.investor_type:item.pitch.investor_type)+"-" +(item.user? item.user.city:item.pitch.city)+ "