我可以选择属性名称(而不是值)以某个字符串开头的所有元素吗?

时间:2012-07-29 15:44:01

标签: javascript css

说我有这个标记摘录:

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

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

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

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

根据元素属性选择一个CSS选择器:

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

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