2015-09-13 60 views
1

標題對此問題沒有太多說明。這是我想要實現的。我使用jQuery從HTML表單發送AJAX請求到一個PHP文件,該文件成功地將所需數據發送回AJAX。我也能看到這個值。這是我的問題:當我嘗試使用屬性獲取單個元素的值時,我無法獲取它。當你看到這將是更清楚我的jQuery代碼無法獲取使用jQuery AJAX生成的來自PHP-MYSQL的數據的值

var temp_client_name; 
$("#temp_client_name").on('click', 'li', function(){ 
    temp_client_id = $(this).attr('id'); 
    //temp_client_name = $("#"+temp_client_id).html(); 
    temp_client_name = $("li[id='+temp_client_id+']").html(); 
    $("#client_name").val(temp_client_name); 
    console.log('temp_client_name ' + temp_client_name); 
}); 

現在的問題是在5號線(替代線4,工作同樣的方式,我想等我評論了這條線,因爲它是一個很好的選擇實現同樣的事情)。 在第3行中,我得到了我感興趣的值的HTML元素的ID,它是li標籤的屬性。而且這也工作得很好,我得到所需元素的ID。那麼,我在哪裏出錯?

回答

0

temp_client_name = $("li[id='+temp_client_id+']").val(); 

表示獲得val的li,其ID爲+temp_client_id+。 如果你想使用temp_client_id變量:

temp_client_name = $("li[id='" + temp_client_id + "']").val(); 

但我不明白你爲什麼要通過id這麼做,訪問元素可以做到,就像

value = $("#id").val(); 
+0

謝謝!但爲什麼這條線路不工作? temp_client_name = $(「#」+ temp_client_id).val(); –

+0

當您嘗試'temp_client_name = $(「#」+ temp_client_id).val();''時,'console.log(temp_client_name)'會顯示什麼?您的網頁上的ID是唯一的嗎? –

+0

它說未定義。是的,ID是獨一無二的。 –

0

您以前添加"+後:

temp_client_name = $("li[id='"+temp_client_id+"']").val(); 

但是,爲什麼不使用:

temp_client_name = $(this).val(); 

相反的:

temp_client_id = $(this).attr('id'); 
//temp_client_name = $("#"+temp_client_id).val(); 
temp_client_name = $("li[id='"+temp_client_id+"']").val(); 
+0

這工作得很好。我無法投票答覆,因爲我沒有特權。你也可以建議爲什麼temp_client_name = $(「#」+ temp_client_id).val();不管用? –

+0

通常它應該工作。 –

0

你有一些錯誤在你的代碼中。

  1. 元素的ID必須是唯一的
  2. HTML標記<li></li>不包含value屬性(所以VAL()不有用這裏)

  3. 此行temp_client_name = $("li[id='+temp_client_id+']").val();是不工作因爲你有錯誤的連接;它必須看起來像這樣$('li[id='+your_variable_here+']').val();

  4. 檢查了這一點 - https://jsfiddle.net/52hrLdkg/

    var temp_client_name; $(document).on('click', 'li', function(){ temp_client_id = $(this).attr('data-id'); temp_client_name = $('#'+temp_client_id).val(); alert('temp_client_name ' + temp_client_name); });

+0

這是我的不好!對不起,我把它切換到.html() –

相關問題