2015-09-13 31 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() –

相关问题