0

我有一个带有特定样式的span标签。我想找到该跨度标签并将其隐藏在下面是我拥有的代码:tdtablecolor:red

HTML:

<table class="table_1">
<tbody>
<tr>
<td>
<span id="dynamically generated" style="color:red;">
Error! correct it.
</span> 
</td>
<td>
<span>
// Three links to three different sites
<a>
</a>
<a>
</a>
<a>
</a>
</span>
</td>
</tr>
<tr>
</tr> 
</tbody>
</table>

编辑第一个跨度的 id 是动态生成的,如 "Span1" "Span2"....

查询:

     $("table.table_1 tr").each(function (n) {
        $(this).find('td:eq(0)').find('span').html("");
    });

上面的 jquery 代码隐藏了这两个span标签,即使它们在不同的td. 难道我做错了什么?我只想隐藏第一个包含错误消息的跨度标签。有办法吗?

4

5 回答 5

2

通常你会在 tr 或 td 上放一个类(比如 'error'),然后hide()它:

<span id="dynamically-generated" class="error">
Error! correct it.
</span>

...

$('table.table_1 .error').hide();

隐藏比调用 html('') 优雅得多,因为 hide() 不会破坏内容。因此,如果您想稍后显示错误,只需调用show()。:)

最后,您应该在 CSS 中添加红色:

.error { color:red; }
于 2012-07-12T07:29:46.887 回答
1

尝试这个:

演示

$('.table_1 span').filter(function() {
    var colormatch= 'rgb(255, 0, 0)'; // match color:red

    return ( $(this).css('color') == colormatch);

}).css('display', 'none'); // hide the span​
于 2012-07-12T07:32:03.470 回答
1

您可以找到“错误”一词并以这种方式将其删除。

有关示例,请参见此处的jsFiddle ,或以下内容。

$(document).ready(function() {
    $("table.table_1 tr td span").each(function() {
        if ($(this).html().lastIndexOf("Error") > 0) {
            $(this).html("");
        }
    });
});
于 2012-07-12T07:41:10.930 回答
1

尝试这个:

$("table.table_1 tr span[style='color:red']:first")

或者:

$(".table_1 span[style]:first")

演示

于 2012-07-12T07:26:14.977 回答
0

首先,让我们看一下您的标记:

ID 和 NAME 元素必须以字母开头,即大写 A 到 Z 或小写 a 到 z;不允许使用数字。在第一个字母之后允许有任意数量的字母(a 到 z、A 到 Z)、数字(0 到 9)、连字符 (-)、下划线 (_)、冒号 (:) 和句点 (.)。

来源:http ://www.electrictoolbox.com/valid-characters-html-id-attribute/

因为不允许使用空格,所以您应该真正使用id="dynamically-generated"而不是id="dynamically generated". 然后你可以简单地做

$('#dynamically-generated').hide()

不过,我建议在此处使用类属性,因为您可能有多个dynamically-generated元素。所以使用class="dynamically-generated"你会写

$('.dynamically-generated').hide()
于 2012-07-12T07:28:33.123 回答