Javascript 在事件处理程序中连接字符串和动态id

Javascript 在事件处理程序中连接字符串和动态id,javascript,meteor,concatenation,Javascript,Meteor,Concatenation,我有一个Meteor模板,它有一个下拉菜单,返回一个字符串,然后在方法中使用。因为我使用下拉列表的类来选择目标的值,所以这只适用于模板的第一个实例-之后,其他模板使用从第一个模板中选择的值 如何引用下拉菜单的id以确保指向正确的实例?id是build{{this.\id}},我无法理解在事件处理程序中使用的语法。我试过: var selection=$(“#”+“build”+“buildId”选项:选中)。val(); 但是没有运气 <template name="Build">

我有一个Meteor模板,它有一个下拉菜单,返回一个字符串,然后在方法中使用。因为我使用下拉列表的类来选择目标的值,所以这只适用于模板的第一个实例-之后,其他模板使用从第一个模板中选择的值

如何引用下拉菜单的id以确保指向正确的实例?id是
build{{this.\id}}
,我无法理解在事件处理程序中使用的语法。我试过:

var selection=$(“#”+“build”+“buildId”选项:选中)。val();

但是没有运气

<template name="Build">
    <form>
        <select class="form-control build-comps" id="build{{buildId}}">
            {{#each comps}}
                <option class="comp" value="{{_id}}">{{name}}</option>
                <option class="comp" value="{{_id}}">{{name}}</option>
                <option class="comp" value="{{_id}}">{{name}}</option>
            {{/each}}
        </select>
        <button type="submit" class="btn btn-info">Add</button>
    </form>
</template>

Template.Build.events({
    'submit form': function(e) {
        e.preventDefault();

        var buildId = this._id;
        var selection = $(".build-comps option:selected").val();
        ...
    }
});

看起来您可能缺少一个引号,或者选择器中有太多的引号:
$(“#build”+buildId)
谢谢,但这不起作用。在Javascript中可以使用把手吗?对不起,我起初认为脚本是模板标记的一部分(在这种情况下,可以识别把手)。但是,由于它是事件逻辑的一部分,您将无法使用Handlebar。已编辑的原始响应。它本身不会返回任何错误,但在我包含
选项:选定时它不起作用。
var selection=$(“#build'+buildId选项:选定”)。val()
错误是:
未捕获错误:语法错误,无法识别的表达式:“#build”+buildId选项:selected
$(“#build”+buildId+”选项:selected”)
var selection = $('#build' + buildId + " " + 'option:selected');