jQuery .val()不从下拉列表返回全文

时间:2012-03-09 00:31:20

标签: jquery

我想知道是否有人可以帮我解决一个简单的问题? 当我选择一个项目时,我有一个下拉列表,我想使用jquery从中获取值。 我使用.val()方法,但问题是items值中有一个空格,例如“Type A” 并且它只返回“类型”而忽略A.我想要全文我怎么能完成这个?

更新代码:

XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

<categories>
<category type='Type A'>
    <genre>1</genre>
    <genre>2</genre>
</category>
<category type='Type B'>
     <genre>3</genre>
     <genre>4</genre>
     <genre>5</genre>
</category>
<category type='Type C'>
    <genre>6</genre>
</category>
</categories>

完整的jQuery代码:

$.ajax({
        type: "GET",
        url: "myxml.xml",
        dataType: "xml",
        success: function(data){
            xml = data;
            });
        }
    });

    return {getXml : function() 
    { 
        if (xml) return xml;
    }};
})();

/* On Category Change */
$(".category").change(function(){
    var type = $(this).val();
    alert(type);
});

HTML

<select class='category'>
</select>

提前致谢!

3 个答案:

答案 0 :(得分:2)

textvalue之间存在差异。听起来你想要选项中可见的text,而不是看不到它的值。

$(".category").change(function(){
    var type = $(this).val();

    var currSelectedText= $(this).find('option:selected').text();
    alert(currSelectedText);
});

答案 1 :(得分:0)

试试这个

$(".category").change(function(){
    var type = $(this).attr('value');
    alert(type);
});

答案 2 :(得分:0)

这可能与您的XML格式有关。

尝试更改

type='Type A'

type="Type A"

当我在HTML中忽略某个属性的引号时,我遇到了同样的问题,并且还认为它是.val()函数的jQuery问题。