在jQuery函数调用中追加id?

时间:2014-01-15 16:35:34

标签: javascript jquery

是否有方法使用current_index add_filter_Form在handleResults()中附加#dimensionName_?

我有以下代码:

this.add_filter_form = function (name, value, status) {
                    form_count++;
                    current_index++;
                    form_status[current_index] = status;

                    $("#_IWID_Filters_included").append("<div id='filter_" + current_index + "'>" +
                        "Filter name: <select id = 'dimensionName_" + current_index + "'></select>" +
                        "Filter value: <select id ='dimensionId_" + current_index + "'></select>" +
                        "<button type='button' id='remove_btn_" + current_index + "' onclick='filter_forms.remove_filter_form(" + current_index + ")' style='margin-top: 5px; margin-bottom: 5px;'>Remove filter</button>" +
                        "</div>");
                }

function handleResults(responseObj) 
            {
                //Populates every dimensionName_[current_index] with names:
                $("#dimensionName_").html(responseObj.DimensionListItem.map(function(item) 
                {
                    return $('<option>').text(item.dimensionDisplayName)[0];
                }));
            }

我正在寻找以下效果:

$("#'dimensionName_ + current_index'")

2 个答案:

答案 0 :(得分:1)

根据我的理解,您通过add_filter设置current_index并在handleResults内异步地需要此值。因此,您需要使此变量全局可用:

var current_index = 0;

this.add_filter_form = ...

function handleResults(responseObj){
  $("#dimensionName_" + current_index).html();
}

答案 1 :(得分:1)

您需要将当前索引变量传递给handleResults函数。您还需要在current_index变量的范围内调用该函数,或者在其他函数中将副本保存在对象范围内。所以你可以使用this.current_index

function handleResults(responseObj, current_index) {...

你需要连接字符串。只需使用+符号即可。

$("#dimensionName_"+current_index)...