我有一个包含大量课程的表格。类的格式是“hide-user-name,show-user-name,update-user-select,data-user-types”。在一个js文件中,它遍历类名并进行一些操作。我无法理解这一点。有人可以帮助我理解它在做什么。
$.each(classNames, function(i, className) {
className = className.split('-');
var action = className.shift();
alert("action "+action); --- Gives hide/show/update/data
alert('.' + className.join('-'));--- .user-name
if (action === 'show' || action === 'hide') {
form.find('.' + className.join('-'))[action]();
}
});
我不理解最后一行。这条线做了什么?
更新2
var field = $(this), classNames = [], optionClassNames = [], updateField, dataField, options = [];
if (action === 'update') {
className = className.join('-');
updateField = form.find('input.' + className + ', select.' + className + ', textarea.' + className);
if (dataField && dataField.length) {
updateField.html('');
options.length = 0;
$.each(dataField, function(x, item) {
if (typeof item === 'object') {
options.push('<option class="' + (item.condition || '') + '" value="' + item.value + '">' + (item.title || item.value) + '</option>');
} else {
options.push('<option class="' + (item || '') + '" value="' + item + '">' + item + '</option>');
}
});
updateField.html(options.join(''));
if (updateField.selectmenu) {
updateField
.selectmenu('destroy')
.selectmenu({
style:'dropdown',
maxHeight: 200,
transferClasses: true
});
}
clearMessages(updateField);
}
}
由于
答案 0 :(得分:0)
如果您指的是行form.find('.' + className.join('-'))[action]();
如果会找到form
元素的后代,而user-name
,则调用该元素上的show()
或hide
演示:Fiddle