Ваш код предупреждает «input3» в Chrome (16), Firefox (6) и IE 8 (с режимом совместимости и без него).
Протестировано с; http://jsfiddle.net/sR97k/
Обратите внимание, что вы оборачиваете ваш селектор / выбранные элементы несколько раз, например $($($('selector')))
, и в этом нет необходимости.
var errorContainers = $('input:visible, div.selector').parents('.inputContainer').filter('.error');
var firstErrorInput = $(errorContainers).find('input, div.selector').first();
alert($(firstErrorInput).attr('name'));
Этого будет достаточно;
var $errorContainers = $('input:visible, div.selector').parents('.inputContainer').filter('.error');
var $firstErrorInput = $errorContainers.find('input, div.selector').first();
alert($firstErrorInput.attr('name'));
Следующий селектор должен получить первый input
в элементе с CSS-классами inputContainer
и error
;
$(document).ready(function() {
var x = $('.inputContainer.error input').first().attr('name');
});
Прежде чем пытаться читать с него, убедитесь, что DOM загружен.