0

如何使用 jQuery(或 vanilla JS 或 CSS)来选择以下跨度?

<span style="vertical-align:bottom">

扭曲是我不能在跨度上放置一个类或以其他方式修改 HTML,因为这个跨度是由一个不稳定的 CMS 输出的。

另一个转折是它不是 td 中的第一个跨度,因此使用 td>span 之类的 CSS 来定位会很棘手。我想我可以按照路径并通过一些长串选择器使用 CSS 选择它,但它是 td 内的一个跨度,但该 td 就像表中第二个 tr 中的第三个 td。这是更好的选择方法吗?我需要做的就是删除该样式或使其垂直对齐:顶部。

那么我可以使用 jQuery 根据 style 属性中的内容来选择元素吗?我会担心它是否是页面上唯一具有该样式的元素,这是让我卡住的部分。

我可以这样做吗?

span[style*="bottom"]
4

3 回答 3

3
var $targets = $("span[style^='verticial-align:']"); //returns all spans with vertical align set
于 2013-10-20T23:37:16.163 回答
3

查询:

你可以使用$("span[style^=vertical-align]")如前所述。

如果您只想定位第一个或第二个等,您可以添加:

/*first span element that has this attribute and property*/
$("span[style^=vertical-align]").eq(0); 

CSS 3

相同的想法:

span[style^=vertical-align] {
     some properties
}
于 2013-10-20T23:41:03.103 回答
2

两种选择:

$('span[style*="vertical-align:bottom"]');

JS 小提琴演示

查看元素[style*="vertical-align:bottom"]的属性是否包含(不是开头)字符串(这比简单地使用style^="vertical-align:bottom"]`稍微可靠一些)选择器。stylevertical-align:bottomstarts-with* (

尽管这取决于是否知道是否存在空白(请注意,在演示(上图)中,它无法选择第一个元素)。或者您可以使用以下内容:

$('span[style]').filter(function(){
    return this.style.verticalAlign === 'bottom';
});

JS 小提琴演示

上述演示使用以下 HTML:

<span style="vertical-align: bottom">This has <code>style="vertical-align: bottom"</code></span>
<span style="vertical-align:bottom">This has <code>style="vertical-align:bottom"</code></span>
<span>This span has no style attribute at all</span>
<span style="color:#f00;vertical-align:bottom">This has <code>style="color:#f00;vertical-align: bottom"</code></span>

参考:

于 2013-10-20T23:41:44.627 回答