我有一个标签
<label>
<input type="checkbox" value="160">160
</label>
或者就像
<label>
<input type="checkbox" value="-160-"><del>160</del>
</label>
现在,我正在尝试的是:
var text = $(this).find('label').html();
但这将返回整<input type="checkbox" value="-160-"><del>160</del>
,这不是我想要的。我也尝试过,.text()
但是文本也没有返回<del>
标记(即,它仅返回160)。
我也尝试过contents().eq(1)
,但没有成功。我想修剪输入标签或将所有内容放入标签标签内以及输入标签后
预期产量:
<del>160</del>
的情况下 <input type="checkbox" value="-160-"><del>160</del>
和
160
的情况下 <input type="checkbox" value="160">160
您可以找到的下一个兄弟节点input
,然后检查它是否为HTML节点,如果是,则返回outerHTML
,否则返回textContent
该节点的。
function getContents(label) {
let next = $(label).find('input')[0].nextSibling;
while (!next.outerHTML && next.textContent.trim().length == 0) {
next = next.nextSibling;
}
return next.outerHTML ? next.outerHTML : next.textContent;
}
console.log(getContents('#div1 label'));
console.log(getContents('#div2 label'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="div1">
<label>
<input type="checkbox" value="160">160
</label>
</div>
<div id="div2">
<label>
<input type="checkbox" value="-160-">
<del>160</del>
</label>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句