使用jQuery摆脱html标签元素中的文本

时间:2018-10-23 16:15:31

标签: jquery html

如何使用jQuery消除<label>标签之间的文本?

我需要将<input>保留在<label>内,但要摆脱“临床供应商”文本。

<label for="form">
    <input type="checkbox" class="ar" name="b" value="Clinical Vendor" id="form">Clinical Vendor
</label>

我尝试过jQuery('label').text('');,但这似乎也摆脱了input标签。

编辑:每个人都使用节点提出了几乎相同的解决方案。瓷砖!谢谢大家!

4 个答案:

答案 0 :(得分:2)

input标签不能有任何子节点,因为它是empty element
您需要定位与label关联的文本并将其删除。

About nodeType (MDN)

$('label')
  .contents()
  .filter(function() {
    return this.nodeType == 3;
  }).remove();

Code from this question

答案 1 :(得分:1)

我相信这可能对您有用:

private fun beginSearch(srsearch: String) {
  disposable = 
     wikiApiServe.hitCountCheck("query", "json", "search", srsearch)
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe(
       { result -> showResult(result.query.searchinfo.totalhits) },
       { error -> showError(error.message) }
      )
}

Demo fiddle

答案 2 :(得分:0)

jQuery('label').contents().last()[0].textContent='';

答案 3 :(得分:0)

您可以将文本节点替换为空白节点:

            function isTextNode() {
              return (this.nodeType === 3);
            }
            $("label").contents().filter(isTextNode).replaceWith(
              document.createTextNode("")
            );
相关问题