如何获得动态创建的HTML元素的价值?

时间:2014-04-30 17:34:20

标签: javascript jquery

Ajax请求返回带有选择列表id="country"

的HTML代码

Ar主要的Js文件有事件点击,我尝试获取值我的dinamic创建选择列表并获得警报: undefined

var country = $('#country option:selected').val();

怎么可能获得价值?

2 个答案:

答案 0 :(得分:2)

假设你没有添加这个'选择'列表到网页,执行以下操作:

... // inside the event click handler, do this:

$.ajax("[*some url goes here*]")
.done(function(response){    // response will look like "<select id='country'> ... </select>"

    // Dynamically create a select element in memory
    var select = $(response);

    // Find the selected option in the select
    var chosenOption = $(select).find('option:selected');

    var value = null;

    // Null check, incase no option was checked and the chosenOption variable is null
    if (chosenOption != null) {
        value = $(chosenOption).val();
    }

});

...

答案 1 :(得分:0)

如果事件在AJAX结束之前被绑定,那么$('#country option:selected')将找不到该元素,因为在绑定时该元素尚不存在。如果您在body标记中查找,请使用.find来解决您的问题:

$('body').find('#country').find('option:selected').val()

此外,使用#country option:selected会导致浏览器首先查找所有选定的选项,然后在#country内查找该选项。因此,使用(#country).find('option:selected')通常会更快,因为它首先找到#country

希望这是你正在寻找的答案。