很抱歉这个可怕的标题,但基本上我正在做的是,我有一个模板,当按下加号按钮时会生成骨干视图。这是一个非常简单的表单,有一些文本输入,并选择下拉菜单。我想通过突出显示重复的区域来验证表单。在我目前的下划线模板中,我有
<div id="#index1-<%=dataId%>">
所以我的模型有一个dataId属性使id唯一。然后我可以按属性选择以红色突出显示该div。当我在搜索如何选择以某些内容开头的ID时,我发现了这篇文章:jquery how to select all the class elements start with "text-"?
作者讨论了如何使用类。我在验证时正在做的是添加一类样式error
,以突出显示红色和东西的内容。因此,遍历使用加号按钮添加的页面上的所有子视图如下所示:
var lastIndex1;
_.each(this.childViews, function (childView) {
var dataId = childView.model.get('dataId');
var index1 = childView.$('#index1-' + dataId).val();
if (lastIndex1 == index1) {
$('#index1-' + dataId).addClass('error');
} else {
lastIndex1 = index1;
$('#index1-' + dataId).removeClass('error');
}
});
所以基本上,我最终迭代我的视图,如果当前视图有问题,我添加我的error
类。我想知道这个实现是否可以通过在html中使用某种类来改进,所以我根本不必使用dataId。
最初当我第一次编写代码时,如果我最后没有添加dataId,那么它只会突出显示其中一个不正确的ID(因为多个项具有相同的id)。课程可以适应这种情况吗?提前谢谢!
答案 0 :(得分:0)
如果要为每个元素分配唯一的id,那么它应该与使用类名一样工作。您的问题可能出在childView
函数的第一行。您的dataId
var每次都可能获得相同的值,而不是您正在迭代的当前项。我不熟悉非核心,但您可以尝试var dataId = this.model.get('dataId');