Используйте jQuery для поиска метки для выбранного элемента управления или текстового поля
Я хочу немного кода 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">
Итак, когда я нажимаю на свое текстовое поле, я хочу (например) сделать предупреждение... с текстом, который находится внутри моего ярлыка, поэтому в этом случае он будет предупреждать "Это мое значение метки"
Надеюсь, что это имеет смысл:)
Ответы
Ответ 1
Используйте селектор атрибутов []
как [for='+ this.id +']
, где this.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
$("#ctl00_WebFormBody_txtPriceAdjustment").bind("click",function(){
alert($("label [for=" + this.id + "]").html());
});
или, возможно,
alert($(this).closest("label").html());
в зависимости от вашей разметки вы можете просто выбрать следующего или предыдущих братьев и сестер.
Ответ 3
В HTML-коде, подобном этому:
<label for="input-email">Email</label>
<input type="text" name="input-email" value="" />
Вы можете найти содержимое ярлыков следующим образом:
$('label[for="input-email"]').html();
Ответ 4
попробуйте следующее:
$('input[type=text]').focus(function(){
alert($('label[for=' + $(this).attr('id') + ']').html());
});
Ответ 5
$('#ctl00_WebFormBody_txtPriceAdjustment').click(function() {
alert($('#ctl00_WebFormBody_lblProductMarkup').text());
});
Ответ 6
Сделать это с помощью 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">