Jquery 检索元素值

Jquery 检索元素值,jquery,Jquery,我希望检索以下dl元素的值,以便通过ajax请求将其发送到php文件 <dl id="item" value="9">9</dl> $.ajax({ url: 'myPhpFile.php', type: 'get', data: { 'item': item }, success: function(data) { $('#myDiv').html(data); } }); 我不知道这是否相关,但这里是ajax

我希望检索以下dl元素的值,以便通过ajax请求将其发送到php文件

<dl id="item" value="9">9</dl>
$.ajax({
    url: 'myPhpFile.php',
    type: 'get',
    data: { 'item': item },
    success: function(data) {
        $('#myDiv').html(data);
    }
});
我不知道这是否相关,但这里是ajax请求

<dl id="item" value="9">9</dl>
$.ajax({
    url: 'myPhpFile.php',
    type: 'get',
    data: { 'item': item },
    success: function(data) {
        $('#myDiv').html(data);
    }
});
此外,firebug上没有错误,但是url上没有任何参数。 我做错了什么

var item = $('#item').attr('value');
应该是正确的选择。我不知道为什么它不适合你


已经演示过了。

您的Dl标签可能包含DT标签。如果接受DL值,它将不会返回其子元素的值 如果我正确地认为您希望获得子值,请尝试这种方法

$('#dl dt:').val()
$('#dl dd:').val()

在给定的示例中,您的代码看起来是正确的,因此我猜可能还有其他问题。有几种可能性:

  • 您的选择器(即,
    #项
    )不正确
  • 在将该元素添加到DOM之前,正在运行代码
  • item
    变量与AJAX请求的作用域不同(即,它的值在AJAX请求的作用域中为
    null
  • 在发出请求之前,
    变量将被覆盖

最简单的方法可能是使用调试器一步一步地执行,这样您就可以同时查看DOM和变量,以准确地查看每一步发生的情况。

我认为
属性对
元素无效。打开控制台并将此
$('#项')粘贴到那里。attr('value')并查看结果。或者打开源代码进行调试并在线设置brakepoint,您的
var项的起始位置是哪里。如果此处发布的答案均无效,则需要在页面中添加jquery源文件。我经常这样做:pSo在调试后似乎正确的答案是第二个。#item元素由另一个ajax请求加载,我的代码在添加之前正在运行。所以我把我的功能放在成功部分,现在它工作了。谢谢:)