Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建自己的函数时出现未知错误_Javascript_Jquery - Fatal编程技术网

Javascript 创建自己的函数时出现未知错误

Javascript 创建自己的函数时出现未知错误,javascript,jquery,Javascript,Jquery,我编写了自己的函数来为伪元素分配属性,并注意到一个未知错误。通过向样式表中添加行来指定属性 在第三种情况下,我调用函数时,为什么第一个元素被涂成蓝色,尽管我没有为它添加color (函数(){ var setPseudoElement=函数(参数){ for(parameters.elements.get()的var元素){ 如果(!element.pseudoElements)element.pseudoElements={ 样式表:null, 之前:{ 索引:null, 属性:null }

我编写了自己的函数来为伪元素分配属性,并注意到一个未知错误。通过向样式表中添加行来指定属性

在第三种情况下,我调用函数时,为什么第一个元素被涂成蓝色,尽管我没有为它添加
color

(函数(){
var setPseudoElement=函数(参数){
for(parameters.elements.get()的var元素){
如果(!element.pseudoElements)element.pseudoElements={
样式表:null,
之前:{
索引:null,
属性:null
},
之后:{
索引:null,
属性:null
}
};
变量选择器=(函数(){
if(element.id){
返回“#”+element.id+::”+parameters.pseudoElement;
}否则{
var parentsList=$(元素).parents().map(函数(){
返回此.tagName.toLowerCase();
}).get().reverse().join('>')+'>'+元素.tagName.toLowerCase();
var elementClass=element.classList.length?'.+$(element.classList.get().join('.'):'';
var elementAttributes=element.hasAttributes()?$(element.attributes).get().map(函数(类名){
返回className.nodeValue!=='className'?className.nodeValue?'['+className.nodeName+'=“'+className.nodeValue+'']:'['+className.nodeName+']:'';
}).加入(“”):“”;
var elementNthChild=':第n个子元素('+($(element.index()+1)+');
返回parentsList+elementClass+elementAttributes+elementNthChild+'::'+parameters.pseudoElement;
};
})();
if(!element.pseudoElements.styleSheet){
if(document.styleSheets[0]){
element.pseudoElements.styleSheet=document.styleSheets[0];
}否则{
var styleSheet=document.createElement('style');
document.head.appendChild(样式表);
element.pseudoElements.styleSheet=styleSheet.sheet;
};
};
if(element.pseudoElements[parameters.pseudoElement].properties!==null&&element.pseudoElements[parameters.pseudoElement].index!==null){
element.pseudoElements.styleSheet.deleteRule(element.pseudoElements[parameters.pseudoElement].index);
};
if(typeof parameters.argument==='object'){
if(!element.pseudoElements[parameters.pseudoElement].properties&&!element.pseudoElements[parameters.pseudoElement].index){
var newIndex=element.pseudoElements.styleSheet.rules.length | | | element.pseudoElements.styleSheet.cssRules.length | | | element.pseudoElements.styleSheet.length;
element.pseudoElements[parameters.pseudoElement].index=newIndex;
element.pseudoElements[parameters.pseudoElement].properties=parameters.argument;
};
var属性=“”;
for(parameters.argument中的var属性){
element.pseudoElements[parameters.pseudoElement].properties[property]=parameters.argument[property];
};
对于(element.pseudoElements[parameters.pseudoElement].properties中的var属性){
properties+=property+':'+element.pseudoElements[parameters.pseudoElement].properties[property]+'!important;';
};
element.pseudoElements.styleSheet.addRule(选择器、属性、元素.pseudoElements[parameters.pseudoElement].index);
}else if(parameters.argument!==未定义&¶meters.property!==未定义){
}else if(parameters.argument!==未定义&¶meters.property===未定义){
}否则{
console.error('Invalid values!');
返回false;
};
};
};
$.fn.cssBefore=函数(参数、属性){
伪元素({
要素:这,,
伪元素:'之前',
论点:论点,
物业:物业
});
};
})();
$(函数(){
//案例1
$('.el0').css之前({
'内容':'新'在\'之前',
“颜色”:“绿色”
});
//案例2
$('.el1').css之前({
“内容”:“新建”在“更新”之前№2"',
“颜色”:“蓝色”
});
//案例3
$('.el0').css之前({
“内容”:“新建”在“更新”之前№3"'
});
});
.element{
宽度:480px;
保证金:0自动;
边框:2倍纯红;
}
.要素:之前{
内容:“旧的‘以前’”;
颜色:橙色;
}

您的代码中有一个小错误,对cols el0 el1和el2的引用不正确,我的意思是,el2不存在,但您可以创建它,并根据需要为其指定颜色

但如果不指定“无”颜色,则将采用上次使用的颜色

(函数(){
var f_csspseudelement=函数(o_参数){
o_parameters.element.each(函数(){
var$\u target=$(此);
var s_selector=$\u target.parents().map(函数(){
返回此.tagName.toLowerCase();
}).get();
如果(!$目标.data(''伪元素''))$目标.data(''伪元素''{
样式表:null,
之后:{
索引:null,
属性:null
},
之前:{
索引:null,
属性:null
}
});
var o_pseudoElements=$_target.data(“伪元素”);
//我创建一个实体来保存样式
if(!o_pseudoElements.StyleSheet){
if(document.styleSheets[0]){
o_pseudoElements.StyleSheet=document.styleSheets[0];
}否则{
var e_StyleSheet=document.createElement('style');
document.head.appendChild(e_样式表);
o_pseudoElements.StyleSheet=e_StyleSheet.sheet;
};
$\u目标数据(“伪元素”,o\u伪元素);
};
if(o_参数的类型。未定义==='object'){
/*==功能启动===*/
element.pseudoElements[parameters.pseudoElement].properties = parameters.argument;
element.pseudoElements[parameters.pseudoElement].properties = {};
element.pseudoElements[parameters.pseudoElement].properties = Object.assign({}, parameters.argument);