标题并没有说明太多问题。这就是我想要达到的目标。我使用jQuery将AJAX请求从HTML表单发送到一个php文件,该文件成功地将所需的数据发送回AJAX。我也能看到这个值。这是我的问题:当我试图使用单个元素的属性获取值时,我无法获得它。当你看到我的jQuery代码
时,就会更清楚了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。那么,我哪里做错了?
Line
temp_client_name = $("li[id='+temp_client_id+']").val();
表示获取id为+temp_client_id+
的li
的val。如果你想使用temp_client_id
变量:
temp_client_name = $("li[id='" + temp_client_id + "']").val();
但是我不明白你为什么这样做,因为通过id
访问元素可以像
value = $( "#id" ).val();
您必须在+
之前和之后添加"
:
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();
你的代码有一些错误。
- 元素id必须唯一
-
html标签
<li></li>
不包含值属性(所以val()在这里没有用) -
这行
temp_client_name = $("li[id='+temp_client_id+']").val();
根本不工作,因为你有错误的连接;它必须是这样的$('li[id='+your_variable_here+']').val();
-
查看- 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); });