原型Js多重选择器
Prototype Js Multiple Selector
我的css路径:
#product_composite_configure .entry-edit .buttons-set.a-right .scalable
我如何选择这个使用prototype js ?我想给这个项目添加一个新属性。
这行不通:
<script type="text/javascript">
$$('#product_composite_configure .entry-edit .buttons-set.a-right .scalable').setAttribute("test","test");
</script>
Thx
(更新)这个也不行:
$$('div#product_composite_configure div.entry-edit div.buttons-set button.scalable').setAttribute("test","test");
$$()
选择器返回所选元素的数组。因此,您需要遍历数组或使用内置迭代器invoke()
。
$$('.css_class').invoke('writeAttribute','checked',true);
或CSS选择器
$$('#product_composite_configure .entry-edit .buttons-set.a-right .scalable').invoke('writeAttribute',"test","test");
我使用writeAttribute()
而不是setAttribute()
,因为它适用于所有浏览器PrototypeJS支持
还有一些其他的方法可以使这个工作
$('product_composite_configure').down('.entry-edit .buttons-set.a-right .scalable').writeAttribute('test','test');
$$('#product_composite_configure .entry-edit .buttons-set.a-right .scalable')[0].writeAttribute('test','test');
这完全取决于你的HTML结构和你想要的行为。如果您只针对一个元素,那么使用down()
的id查找可能会更好。如果你打算在#product_composite_configure
元素中有多个子元素,那么使用$$()
选择器和invoke()
将意味着任何新元素也会受到影响,而无需重写脚本。
为什么要把事情复杂化?试试这个:
var selectors = ["#product_composite_configure",".entry-edit",".buttons-set",".a-right",".scalable"];
selectors.forEach(function(e, i) {
$$(e).each(function(elem) {
elem.setAttribute("test","test");
})
});
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery的等价物's'不是'D3.js中的选择器
- JS-颜色选择器只有第一个工作
- 未使用angular JS清理日期选择器
- 如何使用d3.js选择器删除处理程序
- 如何设置'样式:color'淘汰赛中的颜色选择器.JS
- 在选择未绑定到模型 Angular js 的日期值时使用日期选择器
- 为什么图像选择器程序中的这个函数 js 不起作用
- 是否有根据特异性对 CSS 选择器文本进行排序的 JS 库
- 日期选择器onSelect未从gridmvc.js插件触发
- 日期时间选择器不起作用.不明白怎么写JS
- 节点.js和带有选择器的 Cheerio 解析表
- 如何在日期选择器 jquery 的 Select 事件上调用 js 函数
- 如何使用嵌入式 ruby 动态创建 jquery 选择器(在 .js.erb 文件中)
- HTML 页面中的目录选择器(JS或ExtJs)
- 聚合物可拖动与交互.js/阴影DOM选择器
- D3.js键功能在简单的选择器/数组组合上运行两次
- 空气日期选择器js:小时+2
- CSS悬停选择器-JS或Jquery解决方案
- 带有轨道的日期选择器 js 奇怪的事情