我有一个带有td class-formlabel和text(HP)Hello
的html表为什么不替换文字?
$(this).text().replace('(HP)','');
如果this
为$("td.ms-formlabel").each(function(){
$(this).text("hello");
如果上面提供的html和下面的代码,如何隐藏TR行以进行匹配? (注意我需要使用以下条件和循环)
$("td.ms-formlabel").each(function(){
if($(this).text().match('(HP)')){
// what code here to hide the entire TR row ?
}
感谢。
答案 0 :(得分:1)
$(this).text().replace('(HP)','');
会替换文字,但您不会对其执行任何操作 - 请尝试:
var text = $(this).text().replace('(HP)','');
$(this).text(text);
除非您在.ms-formlabel
<td class="ms-formlabel"><b>Bold</b></td>
将成为
<td class="ms-formlabel">Hello</td>
您可以使用:
$(this).closest('tr').hide();
答案 1 :(得分:1)
.text()
返回一个字符串。要修改和替换文本,您必须重新设置它。这类似于x + 5
不会改变x
这一事实。您必须键入x = x + 5
在这种情况下,代码将是:
$(this).text($(this).text().replace('(HP)',''));
我不太明白这个问题。如果您尝试设置一些HTML样式,请改用.html()
函数。
试试这个:
if ($(this).text().match('(HP)')) {
$(this).closest('tr').hide();
}
答案 2 :(得分:1)
有几件事:
:contains
.html()
element.text(content)
所以这是一个例子......
$("td.ms-formlabel:contains('(HP')").each(function(){
var $this = $(this);
$this.html($this.html().replace('(HP)',''));
$this.closest('tr').hide();
}
我认为这就是你想要的。我唯一可能错的就是你要隐藏哪一行...你的措辞有点令人困惑......