jQuery在我的示例中如何定位标签
在尝试确定目标并更改标签文本时遇到了异常困难的情况jQuery在我的示例中如何定位标签,jquery,text,label,Jquery,Text,Label,在尝试确定目标并更改标签文本时遇到了异常困难的情况 <li> <label></label><br/> <input type='tel' class='added_phone' name='' value='' maxlength='20' /> </li> 我能够发现有一个或多个电话对象,创建并显示输入,将电话号码放入字段,但无法定位标签并放入标签(名称) 已尝试最近的、父项、标签。。。代码隧道X_X
<li>
<label></label><br/>
<input type='tel' class='added_phone' name='' value='' maxlength='20' />
</li>
我能够发现有一个或多个电话对象,创建并显示输入,将电话号码放入字段,但无法定位标签并放入标签(名称)
已尝试最近的、父项、标签。。。代码隧道X_X
如何处理此问题?您可以使用.parent()和.find()选择器来定位所需的元素:
HTML:
$('#mybutt')。单击(函数(){
var inputphone=$(“
”;
$('.new_option')。追加(inputphone);
警报($('.added_phone').parent().find('label').attr('id'));
});
要更新标签字段本身,请执行以下操作:
$('#mybutt')。单击(函数(){
var inputphone=$(“
”;
$('.new_option')。追加(inputphone);
//警报($('.added_phone').parent().find('label').attr('id'));
$('.added_phone').parent().find('label').text('Hey there');
});
好吧,考虑到您的以下HTML:
<li>
<label></label><br/>
<input type='tel' class='added_phone' name='' value='' maxlength='20' />
</li>
或:
请注意,如果任何li
包含多个标签
/输入
,这两种方法都可能返回多个元素
顺便说一句,您使用的标签是错误的;它用于识别文本标签和表单的输入(或文本区域或选择)元素之间的关系:
此属性将定义的标签与另一个控件显式关联。存在时,此属性的值必须与同一文档中其他控件的id属性的值相同。如果不存在,则定义的标签与元素的内容相关联
利用标签
的for
属性,该属性必须(如果要工作)与输入
(或类似元素)的id
属性相同:
参考资料:
感谢您提供有关
元素使用的详细而清晰的说明。干得好,谢谢!这是一个艰难的选择,两个答案都是完美的,谢谢你的参考:)谢谢+1,并花时间阅读JSFIDLE!
$(profileData.phones).each(function(i) {
$('.new_option').append(inputphone);
$('.added_phone').closest('label').text(profileData.phones[0].tag);
$('.added_phone').attr('id', "added_"+profileData.phones[0].tag+"phone" + (i + 1));
});
$('.added_phone').attr('value', profileData.phones[0].label);
});
<div class="new_option"></div>
<input type="button" id="mybutt" value="Click Me">
$('#mybutt').click(function() {
var inputphone = $("<li id='myLI'><label id='myLabel'></label><br/><input type='tel' class='added_phone' /></li>");
$('.new_option').append(inputphone);
alert($('.added_phone').parent().find('label').attr('id'));
});
$('#mybutt').click(function() {
var inputphone = $("<li id='myLI'><label id='myLabel'></label><br/><input type='tel' class='added_phone' /></li>");
$('.new_option').append(inputphone);
//alert($('.added_phone').parent().find('label').attr('id'));
$('.added_phone').parent().find('label').text('Hey there');
});
<li>
<label></label><br/>
<input type='tel' class='added_phone' name='' value='' maxlength='20' />
</li>
$(this).parent().find('label');
$(this).prevAll('label');
<li>
<label for="inputID"></label><br/>
<input id="inputID" type='tel' class='added_phone' name='' value='' maxlength='20' />
</li>
$('label[for="' + this.id + '"]');