如何使用jquery更改标签标记内的文本

如何使用jquery更改标签标记内的文本,jquery,Jquery,如何将文本添加图像更改为更改图像 <label class="control-label col-md-offset-4 col-md-4 btn green feedbackImg" style="text-align:center;"> Add Your Image <input type="file" name="data[Feedback][img]" class="form-control hide single_img_btn" id="1" sty

如何将文本
添加图像
更改为
更改图像

<label class="control-label col-md-offset-4 col-md-4 btn green feedbackImg" style="text-align:center;">
    Add Your Image
    <input type="file" name="data[Feedback][img]" class="form-control hide single_img_btn" id="1" style="display: none;">  
</label>
但它将
标签更改如下:

<label class="control-label col-md-offset-4 col-md-4 btn green feedbackImg" style="text-align:center;">
    Add Your Image
</label>

添加您的图像

这意味着它也会删除输入标记。除了文本外,我如何保持所有内容不变?

如果您可以更改HTML,则只需将要更改的文本包装在
span
中,以便于选择:

<label class="control-label col-md-offset-4 col-md-4 btn green feedbackImg" style="text-align:center;">
    <span>Add Your Image</span>
    <input type="file" name="data[Feedback][img]" class="form-control hide single_img_btn" id="1" style="display: none;">  
</label>
如果无法更改HTML,则需要修改JS代码以检索和修改textNode本身:

$('.feedbackImg').contents().first()[0].textContent = 'Change Your Image';

您需要更新
textNode

  • -用于获取所有节点,包括文本和注释
  • -获取第一个元素,即textNode(标签)
  • -使用新文本更新文本内容
  • 代码:
    $('.feedbackImg').contents().eq(0).replacetwith('Change Your Image')
    
    
    添加您的图像
    
    将html更改为

    <label class="control-label col-md-offset-4 col-md-4 btn green feedbackImg" style="text-align:center;">
        <span class="image_label">Add Your Image</span>
        <input type="file" name="data[Feedback][img]" class="form-control hide single_img_btn" id="1" style="display: none;">  
    </label>
    
    $('.image_label').text('Change Your Image');