我在页面上有几个地方有文本“添加”此文本位于td标记中,该标记也位于输入上方,类型=“hidden”和name =“ProductCode”编辑:我想删除从每个td标签“添加”。
我的猜测是我需要像
这样的东西$("input:checkbox[name='ProductCode']").this('td').each.text('Add').remove;
这显然会引发错误,我不知道我是否接近。注意:我只想定位这些而不是页面上可能有“添加”的任何其他文本
<td valign="top">Add<input type="hidden" value="xxxxxxx" name="ProductCode"></td>
<td valign="top">Add<input type="hidden" value="yyyyyyy" name="ProductCode"></td>
<td valign="top">Add<input type="hidden" value="zzzzzzz" name="ProductCode"></td>
答案 0 :(得分:2)
要获得正确的语法,请阅读jQuery documentation。
针对您的具体问题
$('td:has(>:input[name=ProductCode][type=hidden])').html(
function(index, oldhtml){ return oldhtml.replace('Add',''); }
);
更新以避免以Add开头的文本搞砸了..
$('td:has(>:input[name=ProductCode][type=hidden])')
.each(
function(){
var txt = $(this).contents()[0];
if(txt.nodeType===3 && $(txt).text()=='Add')
$(txt).remove();
});
答案 1 :(得分:1)
此代码可以帮助您:
$(document).ready(function() {
$("td:contains(Add) input[name=ProductCode]:hidden").parent().each(function(){
var el=$(this); // Get the element
el.html(el.html().replace(/^Add</g,'<')); // Remove the Add
});
});
答案 2 :(得分:1)
这个工作:
$("input[name='ProductCode'][type=hidden]").parent().each (
function () {
$(this)[0].innerHTML = $(this)[0].innerHTML.replace (/Add/i, '');
}
);
答案 3 :(得分:0)
$("td:has(input[name=ProductCode]:hidden)").each(function(){
$(this).contents().first().remove();
});
见here。
答案 4 :(得分:0)
$('td:contains(Add) > :input[name=ProductCode]:hidden').each(function() {
var prev = this.previousSibling;
if (prev && (prev.nodeType === 3) && prev.nodeValue.match(/^\s*Add\s*$/)) {
$(prev).remove();
}
});