Jquery找到具有特定样式的span标记

时间:2012-07-12 07:23:38

标签: jquery html

我在span的{​​{1}}内有一个td标记,其格式为table。我想找到span标签并将其隐藏在下面是我的代码:

HTML:

color:red

编辑第一个范围的ID是动态生成的,如“Span1”“Span2”....

Jquery的:

<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>

上面的jquery代码隐藏了 $("table.table_1 tr").each(function (n) { $(this).find('td:eq(0)').find('span').html(""); }); 标记,即使它们位于不同的span中。难道我做错了什么?我只是想隐藏第一个包含错误信息的span标签。有办法吗?

5 个答案:

答案 0 :(得分:2)

通常你会在tr或td上加上 class (比如'error'),然后 hide()

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

...

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

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

最后,你应该在CSS中加入红色:

.error { color:red; }

答案 1 :(得分:1)

试试这个:

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

或:

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

DEMO

答案 2 :(得分:1)

试试这个:

Demo

$('.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​

答案 3 :(得分:1)

您可以找到单词“Error”并将其删除。

请参阅此处jsFiddle获取示例或以下内容。

$(document).ready(function() {
    $("table.table_1 tr td span").each(function() {
        if ($(this).html().lastIndexOf("Error") > 0) {
            $(this).html("");
        }
    });
});

答案 4 :(得分: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()

我建议在这里使用class属性,因为你可能有多个dynamically-generated元素。所以使用class="dynamically-generated"你会写

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