[jQuery] Numbering ... Could someone please help me out with this?
Hi,
I am adding list items to a list as follows:
$('#AddTheme').bind('click', function(){
// Other code
$theme = $('<li class="Themes"></li>').appendTo
('#Themes');
$theme.append('<input type="hidden" name="Themes[0].Subject"
value = "' + $subject.val() + '" />');
$theme.append('<input type="hidden" name="Themes
[0].LevelsCsv" value = "' + levelsTypes.join(",") + '" />');
$theme.append('<input type="hidden" name="Themes
[0].Description" value = "' + description.val() + '" />');
});
Basically, every time I add a new item I want to give the next number
to Themes[0], i.e., Themes[1].
If I add 3 themes I will have Themes[0], Themes[1], Themes[2]
Basically, I need to have at all times themes numbered as 0, 1, 2, ...
Could someone please help me out?
Thanks,
Miguel
Just in case, here is my entire code fully commented:
$('#Cancel').click(function() { location.href = '/Account/
List'; });
// Themes >>
// Define remove event
$('.Remove').livequery('click', function(event) {
$(this).parent().remove();
});
// Bind add button
$('#AddTheme').bind('click', function(){
// Define valid
var valid = new Boolean(true);
// Define fields
$description = $('#Description');
$levels = $('input[name="Levels"]:checked + label');
$levelsTypes = $('input[name="Levels"]:checked');
$subject = $('#Subject option:selected');
// Map levels
levels = $levels.map(function() { return $(this).text(); }).get
();
levelsTypes = $levelsTypes.map(function() { return $(this).val
(); }).get();
// Check subject
if (!$subject.val()) { valid = false; }
// Check levels
if (!levels.length) { valid = false; }
// Check boolean
if (valid) {
// Define theme
$theme = $('<li class="Themes"></li>').appendTo
('#Themes');
// Add fields
$theme.append($subject.text()).append('<br />');
$theme.append( Levels(levels) + '<br />' );
if ($description.val()) { $theme.append($description.val
()).append('<br />'); }
// Add button
$theme.append('<a href="#Remove" class="Remove">Remover</
a>');
// Add inputs
$theme.append('<input type="hidden" name="Themes[0].Subject"
value = "' + $subject.val() + '" />');
$theme.append('<input type="hidden" name="Themes
[0].LevelsCsv" value = "' + levelsTypes.join(",") + '" />');
$theme.append('<input type="hidden" name="Themes
[0].Description" value = "' + description.val() + '" />');
// Add input
//$theme.append(' <input type="hidden" name="Themes" value =
"' + theme + '" />');
}
});
// Levels
function Levels(levels) {
// Check levels
if (levels.length < 2) return levels.join('');
// Define first
var first = levels.slice(0, -1), last = levels.slice(-1);
// Define result
var result = first.join(', ');
// Check last
if (last) { result += ' and ' + last; }
// Return results
return result;
} // Levels