循环使用CSS规则遍历数组,并将它们应用于元素
Looping through an array with CSS rules, and applying them to element
我希望用户能够输入CSS输入,并将该CSS应用于最后一个选择的元素(由"rangeselector"变量选择)。代码选择了正确的元素,但只应用了第一个CSS规则。
例如:"背景:蓝色;颜色:红色;"仅适用于背景。
函数正确地在数组中运行。
function customCss(){
css = $("input.css").val();
if(css.length < 10){
alert("Insert valid CSS");
}else{
cssArray = css.split(";");
counter = 0;
cssArray.forEach(function(){
var ruleSplit = cssArray[counter].split(":");
target = $("[content_child=" + rangeselector + "]");
target.css(ruleSplit[0] , ruleSplit[1]);
counter = counter + 1;
});
}
}
如果你知道这个问题,或者有更好的方法来实现同样的目标,我很乐意听取你的建议。
感谢
通过使用Array.forEach(),您已经拥有了对Array的索引和引用。你不需要使用计数器
cssArray = css.split(";");
// counter = 0;
cssArray.forEach(function(obj, key, array){
var ruleSplit = obj.split(":");
target = $("[content_child=" + rangeselector + "]");
target.css(ruleSplit[0] , ruleSplit[1]);
// counter = counter + 1;
});
在设置元素之前,您是否尝试过剥离这些元素?可能发生的情况是,它试图设置类似"颜色"的东西,而不是"颜色"
function customCss(){
css = $("input.css").val();
if(css.length < 10){
alert("Insert valid CSS");
}else{
cssArray = css.split(";");
counter = 0;
cssArray.forEach(function(){
var ruleSplit = cssArray[counter].split(":");
target = $("[content_child=" + rangeselector + "]");
target.css(ruleSplit[0].trim() , ruleSplit[1].trim());
counter = counter + 1;
});
}
}
相关文章:
- 将自定义javascript函数应用于iframe元素
- CSS: jQuery:将右边距应用于 li 元素,除了每个第 4 个子元素(仅适用于 display:block 的元
- jQuery将“x”号图像元素应用于SRC和类
- 将 css 样式应用于 javascript 调用中的 :after 伪元素
- 如何将CSS应用于Javascript添加的元素
- 您能否通过JavaScript将媒体查询特定样式应用于HTML元素
- 可以/应该将多个自定义指令应用于Angular中的同一元素
- 聚合物:将动画应用于dom重复模板中的dom元素
- 将点击/悬停函数应用于JS中的多个元素类
- 将jQuery应用于ajax加载的HTML元素
- 当将.click()应用于li元素时,应该使用什么选择器
- 将jquery插件应用于dom元素
- 将显示功能应用于ajax成功创建的元素
- 如何将工具提示应用于d3嵌套层(流图)中的元素
- 将焦点样式事件应用于UL标记元素
- 将jQuery动画应用于Angular JS在加载时动态加载的视图中的元素
- 有没有一种更优雅的方法将 css 应用于“除了这个元素之外的所有元素”
- 如何用.not改变选择器来应用于dom元素
- 全局样式未应用于Chrome 36中Polymer元素中的Shadow DOM子项
- 将数据元素应用于“数据表”单元格