Javascript 按加载的部分字符串选择元素无法获取值

Javascript 按加载的部分字符串选择元素无法获取值,javascript,jquery,html,ajax,spring-mvc,Javascript,Jquery,Html,Ajax,Spring Mvc,我目前正在开发一个应用程序,该应用程序已经具有加载信息的现有功能,我需要将这些信息与加载这些信息的ajax调用一起解析。我在选择加载文档上的元素值时遇到了一个问题,因为它没有根据它正在选择的dom元素(通过突出显示进行测试)向我返回值,并且它是唯一被选择的元素。有问题的jQuery代码片段是: $('.viewComponent').each(function(){ //run ajax call to get the components var

我目前正在开发一个应用程序,该应用程序已经具有加载信息的现有功能,我需要将这些信息与加载这些信息的ajax调用一起解析。我在选择加载文档上的元素值时遇到了一个问题,因为它没有根据它正在选择的dom元素(通过突出显示进行测试)向我返回值,并且它是唯一被选择的元素。有问题的jQuery代码片段是:

        $('.viewComponent').each(function(){
        //run ajax call to get the components
        var foodId = $(this).nextAll('input[name$=".code"]').val();
        $('#createComponentDialog').load('getComoponent.do', "foodID=" + foodId);
        calories = $('#createComponentDialog :input[name*="Calories"]').val();
    });
因此,您可以看到,对于每个组件,我正在加载查询,然后尝试选择一个由查询填充的字段,以便在稍后进行一些计算后进入另一个区域,但是val返回为:“它在一个实例中选择的dom元素位于id标记区域内,但已加载:

<li><label for="nutrients['Calories'].quantity">Calories</label><input id="nutrients'Calories'.quantity" name="nutrients['Calories'].quantity" class="text number" type="text" value="31.0" disabled="disabled"> kcal</li>
这是我当前的脚本,在做了许多测试之后,断点出于某种原因暂停并导致问题,但是它确实将数据填充到弹出窗口中,我现在正在正确创建!
正如你所看到的,我正在运行一个日志,它总是在我的日志中显示“加载的营养素”,为什么它会这样做?

Attribute“for”应该包含一个ID列表,据我所知。你在哪里读取的卡路里没有显示?就在排队之后?或者这是将异步视为同步问题的经典方法。我尝试了这个带有或不带id的选择器,但它仍然返回一个.length值1,其中我读取的值是chrome debug,它应该将它输入到另一个dom元素区域,并观察变量使用变量Inspector传递的情况
console.log($('#createComponentDialog:input[name*=“carries”])返回?一个集合?将
.val()
添加到它,它是否得到正确的值?它什么也不返回,我甚至尝试将选择器设置为$('input[name*=“carries”]),但它仍然作为无控制台响应返回
$('input.nutritionFacts').live('click', function(e){
    var servings = $('#servings').val();
    var calories = 0;
    var servSize = 0;
    $('.weight').each(function(){
        servSize += parseFloat($(this).val());
    });
    $('#servSize').html(servSize);
    $('#servCont').html(servings);
    //for each component
    $('.viewComponent').each(function(){
        //run ajax call to get the components
        var foodId = $(this).nextAll('input[name$=".code"]').val();
        var weight = $(this).nextAll('.weight').val();
        $('#createComponentDialog').load('getComponent.do', "foodId=" + foodId, function(){
        console.log("loaded" + foodId + "successfully");
    });
        calories += parseFloat($("input[name*='Calories']").val());
    });
    $('#calories').html(calories);
    //run against weight from get components result
    //sum into form frame for nutritionfacts
    $('#nutritionFacts').dialog();
    console.log("loaded nutrients");
});