2014-01-11 2 views
0

Я пытаюсь иметь входы изменить там значение в зависимости от щелчка здесь является jsfiddle http://jsfiddle.net/x3fgg/JQuery каждый изменяя только первый элемент

Так я имею разные входы, как так

<li> 
    <input type="text" class="mainfinput" value="something" readonly> 
    <input type="hidden" class="ftext" value="something else"> 
    <input type="hidden" class="fbbcode" value="something else"> 
    <input type="hidden" class="fhtml" value="something else"> 
</li> 

Так У меня есть основной вход, который изменит значение в зависимости от того, что пользователь нажал. Поэтому, если они нажмут «ftextbtn», тогда все основное значение ввода будет использовать значение «ftext». но на данный момент он использует первое значение li со всеми другими ликами. Так что я делаю неправильно

здесь является JS

$(document).on('click', '.ftextbtn' , function(e) { 
    e.preventDefault();  
    $('.link_list li').each(function(){ 
     var main = $('.mainfinput'); 
     var ftext = main.siblings('.ftext').val(); 
     alert(ftext); 
    }); 
}); 
+0

Почему вы не закрывая входы? – Cilan

+1

Код jQuery и селектор не соответствуют разметке HTML. Отправьте фактический код – Sachin

+0

http://jsfiddle.net/x3fgg/ –

ответ

2

Код, в котором вы действуете внутри каждого, не имеет ничего общего с самим собой. Вы никогда не использовать $ (это), так что каждый цикл будет делать точную вещь снова и снова

$('.link_list li').each(function(){ 

    //to make use of the li each loop, you would need to do something like this 
    var main = $(this).find('.mainfinput'); 
    var ftext = main.siblings('.ftext').val(); 
    alert(ftext); 
}); 

Including FIDDLE i updated from OP to work with above suggestion

+0

Пожалуйста, не используйте предупреждения - особенно не в циклах. Используйте 'console.log()' вместо – lukasgeiter

+0

вы шутите? мы, очевидно, отлаживаем здесь, и console.log выдает ошибки во многих браузерах, которые не поддерживают его. Не говоря уже об этом, исходя из его первоначального кода, кто мы, чтобы сказать, что это не требование его иметь что-то, что блокирует и/или предупреждает пользователя? – erikrunia

+0

Да, но насколько я знаю, только старые браузеры имеют проблемы с 'console.log()', и я уверен, что это не совместимость с браузером. Редактирование: Хорошо, я понял, что, хотя я не думаю, что ему нужно предупреждение на последнем сайте – lukasgeiter

0

Как stated in the documentation:

Получить текущее значение первого элемента в наборе соответствующих элементов или установить значение каждого согласованный элемент.

main.siblings() возвращает список соответствующих элементов, а затем .val() будет извлекать из первого значения этого списка. Это означает, что из всех братьев и сестер .mainfinput, .val() получит ТОЛЬКО значение .ftext и больше ничего.

+0

, так что я должен использовать var ftext = $ ('. ftext.'). val(); ? –

+0

, хотя это может быть правдой только о том, чтобы получить только первый из этих списков (не уверен, что вы делаете с братьями и сестрами), пожалуйста, см. Мой ответ для получения информации о том, почему вы не находите правильный основной цикл каждого цикла. – erikrunia

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