2013-08-19 2 views
0

мне нужна помощь, чтобы получить первый, предыдущий, текущий, следующий и последний значения списка LI уль ...Получить значения Li Ul, как первый, предыдущий, текущий, следующий и последний

Вот небольшой jsfiddle: http://jsfiddle.net/ptCoder/CCD29/

Я пытался что-то вроде этого (для следующего значения):

alert($('#selectId li').next()); 

... но не работают. Я пробовал искать здесь, но не нашел решения ...

Может ли кто-нибудь мне помочь?

Thank you.

+1

доу вы хотите, чтобы получить следующий _list_ или следующий _item_ в выбранном list_? в последнем случае, что соответствует текущему элементу (или вам нужно получить доступ к соответствующему значению для каждого элемента списка?), в этом случае вы можете выполнять итерацию по всем элементам li ul, создавая отдельные обработчики событий, или увеличивать элементы с помощью атрибут данных, определяющий позицию среди братьев и сестер) – collapsar

+4

Элементы списка не должны иметь значения, например, входные данные формы. Хотя 'val()' может работать, это не семантически корректно и может не работать во всех браузерах. Вместо этого используйте 'data-value =" xx "и' .data ('значение') '. – Blazemonger

+0

Спасибо за все ответы. Проблема решена ... – ptCoder

ответ

2

Проверь это: http://jsfiddle.net/CCD29/4/

$("#selectId li a").click(function() { 
    $("#idValue").val(parseFloat(($(this).text()))); 
}); 

// First 
$("#btnFirst").click(function() { 
    alert($("#selectId li:first").val()); 
}); 

// Previous 
$("#btnPrevious").click(function() { 
    var currentVal = $("#idValue").val(); 
    var prev = $("#selectId li[value='" + currentVal + "']").prev(); 
    if (prev.length > 0) alert(prev.val()); 
}); 

// Current 
$("#btnCurrent").click(function() { 
    alert($("#idValue").val()); 
}); 

// Next 
$("#btnNext").click(function() { 
    var currentVal = $("#idValue").val(); 
    var next = $("#selectId li[value='" + currentVal + "']").next(); 
    if (next.length > 0) alert(next.val()); 
});  

// Last 
$("#btnLast").click(function() { 
    alert($("#selectId li:last").val()); 
}); 

Кстати, атрибут value для li может работать (код выше показывает), но вы shoul d не использовать это (Blazemonger указал, почему в комментарии). Вместо этого вы должны использовать data-value. Скрипку, используя data-value здесь: http://jsfiddle.net/CCD29/5/

+0

Отлично работает. Большое спасибо ... – ptCoder

+2

Прочитайте комментарий Blazemonger выше о атрибутах значения в элементах списка. Вы можете исправить это, получив текст элемента списка. – j08691

+0

Обновлена ​​скрипка, чтобы отразить комментарий. Вместо этого использовалось 'data-value' – mshsayem

2
$('li').first().val() 

$('li').last().val() 

для первых & последних значений 'LI' ..

Для следующего & предыдущих вам нужен элемент ссылочного 'LI' для этого

+0

Спасибо вам большое ... – ptCoder

2

Попробуйте это за первый и последний:

alert($('ul#selectId li:first').val()); 
alert($('ul#selectId li:last').val()); 
+0

Thank You. Проблема решена;) – ptCoder

+0

@ptCoder Ваше добро пожаловать! –

Смежные вопросы