1

假设我有这个标记摘录:

<p onblur="...">text 1</p>
<p class="myclass">text 2</p>
<p onfocus="...">text 3</p>

是否有一个 CSS 选择器,我可以使用它们都具有以“on”开头的属性这一事实来获取第一个和最后一个元素(但不是中间元素)?我正在寻找一个通用的解决方案,而不是针对这个特殊情况的东西(因为,​​当然,对于这个特殊的例子,预期的结果可以通过更直接的方式实现)。

基于 Javascript 的解决方案也适用于我(尽管我希望避免使用蛮力检查每个元素的方法)。这实际上就是我正在寻找的(可以与 jQuery 或类似库一起使用的选择器)。

4

2 回答 2

1

正如尖锐指出的那样,这不是推荐的解决方法。只需使用一个类来对您想要立即定位的元素进行分组。

但是,您可以使用以下方法定位大多数事件处理程序:

[onabort],[onbeforecopy],[onbeforecut],[onbeforepaste],[onblur],[onchange],[onclick],[oncontextmenu],[oncopy],[oncut],[ondblclick],[ondrag],[ondragend],[ondragenter],[ondragleave],[ondragover],[ondragstart],[ondrop],[onerror],[onfocus],[oninput],[oninvalid],[onkeydown],[onkeypress],[onkeyup],[onload],[onmousedown],[onmousemove],[onmouseout],[onmouseover],[onmouseup],[onmousewheel],[onpaste],[onreset],[onscroll],[onsearch],[onselect],[onselectstart],[onsubmit] {
  color: #BADBAD;   
}

见演示http://jsfiddle.net/uwXgt/1/

于 2012-07-29T16:02:38.310 回答
0

有一个 CSS 选择器可以根据元素属性进行选择:

p[onfocus] { color:blue; }
p[class=myclass] { color:red; }

但是 CSS 中没有办法根据属性名称的第一部分进行选择。

于 2012-07-29T15:49:41.957 回答