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 + '"]');