2011-12-23 1 views
2

Как я могу получить текст из диапазона, который предшествует текстовому вводу, и когда этот вход получает фокус, получает интервал фокусированного ввода? позволяет говорить о том, что входы так:Как получить текст из диапазона поля ввода, когда он получает фокус?

<div> 
<label for="id">...</label> 
<input type="text" id="id" value="" /> 
<span class="span">span</span> 
</div> 

есть способ, чтобы получить значение, может быть что-то вроде этого:

$('#id').live('focus', function(){ 
var text = $(this, '.span').text(); 
}); 

я живое связывания, потому что входы динамически создается я» также попробовал что-то вроде этого, но, похоже, не работает:

var text = $(this).find('.span').text(); 

заблаговременно!

ответ

3

Вы имеете в виду интервал, который достигает Ваш вход? Вот как структурирован ваш html.

Я думаю, что это то, что вы ищете

$('#id').live('focus', function(){ 
    var text = $(this).siblings("span:first").text(); 
}); 

Или, если вы на 100% уверены, что продолжительность всегда будет рядом с входом, вы могли бы сделать

$('#id').live('focus', function(){ 
    var text = $(this).next().text(); 
}); 

Но если вы действительно хотите, чтобы срок, который приходит непосредственно перед вводом данных, вы можете использовать функцию prev:

$('#id').live('focus', function(){ 
    var text = $(this).prev("span").text(); 
}); 

Наконец, обратите внимание, что live устарел. Обычно я рекомендую переключиться на on, но так как вы просто выбрать один элемент по идентификатору, почему бы не просто сделать:

$('#id').focus(function() { 
    var text = $(this).prev("span").text(); 
}); 

Или сделать это более общий характер, и в состоянии работать с любой ввода

$(document).on("focus", "input[type='text']", function() { 
    var text = $(this).prev("span").text(); 
}); 
+0

, что сделал это большое спасибо –

+0

@SamuelLopez - мое удовольствие - рад, что сработало! –

0

Если вы знаете, что пядь следующий элемент:

$('#id').live('focus', function(){ 
    var text = $(this).next().text(); 
}); 

Также нет необходимости давать класс span.

0

попробовать

$('#id').live('click', function(){ 
    var text = $(this).siblings('span').text(); 
    alert(text); 
}); 

DEMO // здесь использовать click, вы можете изменить это focus

.siblings()

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

  • Нет связанных вопросов^_^