Используйте jQuery, чтобы найти метку для выбранного элемента управления или текстового поля - PullRequest
23 голосов
/ 17 сентября 2011

Я хочу немного кода jQuery, который позволит мне находить метку для элемента управления, когда я нажимаю на текстовое поле ... так что в моем HTML у меня есть это:

<label id="ctl00_WebFormBody_lblProductMarkup"  for="ctl00_WebFormBody_txtPriceAdjustment">This Is My Label Value</label>

<input type="text" style="width:29px;" onclick="alert('label value here');" title="Here is a title" id="ctl00_WebFormBody_txtPriceAdjustment" maxlength="3" name="ctl00$WebFormBody$txtPriceAdjustment">

Итак, когда я нажимаю на свое текстовое поле, я хочу (например) сделать предупреждение ... с текстом, который находится внутри моей метки - так что в этом случае он будет предупреждать «Это значение моей метки»

Надеюсь, что имеет смысл:)

Ответы [ 6 ]

43 голосов
/ 17 сентября 2011

Используйте селектор атрибута [], как [for='+ this.id +'], где this.id - это ID текущего focus ed label

$('input').on("focus", function() {
   var labelText = $('label[for='+  this.id  +']').text();
   console.log( labelText );  
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<label for="inp">This Is My Label Value</label>
<input  id="inp" type="text" >
2 голосов
/ 17 сентября 2011

В HTML-коде, подобном этому:

<label for="input-email">Email</label>
<input type="text" name="input-email" value="" />

Вы можете найти содержимое ярлыка следующим образом:

$('label[for="input-email"]').html();
2 голосов
/ 17 сентября 2011
$("#ctl00_WebFormBody_txtPriceAdjustment").bind("click",function(){
    alert($("label [for=" + this.id + "]").html());
});

или, возможно,

alert($(this).closest("label").html());

в зависимости от вашей разметки вы можете просто выбрать следующий или предыдущий брат или сестру.

1 голос
/ 17 сентября 2011

попробуйте это:

$('input[type=text]').focus(function(){
     alert($('label[for=' + $(this).attr('id') + ']').html());
});
0 голосов
/ 17 сентября 2011

Чтобы сделать это с помощью JavaScript

<script type="text/javascript">
function displayMessage()
{
alert(document.getElementById("ctl00_WebFormBody_lblProductMarkup").innerHTML);
}
</script>

<label id="ctl00_WebFormBody_lblProductMarkup"  for="ctl00_WebFormBody_txtPriceAdjustment">This Is My Label Value</label>

<input type="text" style="width:29px;" onclick="displayMessage()" title="Here is a title" id="ctl00_WebFormBody_txtPriceAdjustment" maxlength="3" name="ctl00$WebFormBody$txtPriceAdjustment">
0 голосов
/ 17 сентября 2011
$('#ctl00_WebFormBody_txtPriceAdjustment').click(function() {
  alert($('#ctl00_WebFormBody_lblProductMarkup').text());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...