私のコメントに対するアンドリューの答えは、この質問を引き起こしました。
上記のリンクの彼の素晴らしい答えによると、質問の下部にあるコードは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)+ "