循环查找标签,然后更改文本
我有由 CMS 生成的以下标记:
<div class="product">
<div class="blk">
<span>
<br>
<label>Size</label>
<select onchange="" name="">
</span>
<span>
<br>
<label>Colour</label>
<select onchange="" name="">
</span>
</div>
</div>
每当出现“尺寸”时,我都需要替换标签文本。我尝试了各种代码...例如:
$('.productOptionsBlock .blk span label').each(function() {
if ($(this).('label:contains("Size")').length > 0) {
$(this).replaceWith('<span>Alternative text</span>');
}
});
但我无法让替代品工作。我对使用 $(this)
以及如何附加标签内容感到困惑......
I have the following markup being generated by a CMS:
<div class="product">
<div class="blk">
<span>
<br>
<label>Size</label>
<select onchange="" name="">
</span>
<span>
<br>
<label>Colour</label>
<select onchange="" name="">
</span>
</div>
</div>
I need to replace the label text whenever 'Size' is present. I have tried a variety of code... such as:
$('.productOptionsBlock .blk span label').each(function() {
if ($(this).('label:contains("Size")').length > 0) {
$(this).replaceWith('<span>Alternative text</span>');
}
});
But I can't get the replacement to work. I get confused with using $(this)
and how to attach the label contents...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
无需循环执行此任务,只需将相同的内容应用于选择器即可:
查看演示
No need to loop for this task, you just apply the same thing to the selector:
Check a demo
$(this).('label:contains("Size")')
不执行任何操作。也许您的意思是:
不过,您不需要显式循环:
$(this).('label:contains("Size")')
doesn't do anything.Perhaps you meant:
You don't need the explicit loop, though: