从td删除了文本

时间:2010-07-10 23:38:04

标签: jquery

我在页面上有几个地方有文本“添加”此文本位于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>

5 个答案:

答案 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();
    }
});