Javascript 如何在动态代码中插入字符串中的匹配字? 问题

Javascript 如何在动态代码中插入字符串中的匹配字? 问题,javascript,jquery,Javascript,Jquery,Im构建JS代码,可以: 从div 从每个字符串中提取关键字 将关键字放在适当的位置以动态执行代码 //hocuspocus //一个函数刚刚将HTML中的.sendToJS语句转换成如下数组 句子=[ “.box1为单击,将背景更改为绿色”, “.box2是dblclick,将高度更改为200px”, “.box3悬停,将边框更改为红色”, “.box4为单击,将边框半径更改为20px”, “.box5为单击,将转换更改为.3s”, ] 句子。forEach(函数(s,i){ 断开=/(^.

Im构建JS代码,可以:

  • div
  • 从每个
    字符串中提取
    关键字
  • 将关键字放在适当的位置以动态执行代码
  • //hocuspocus
    //一个函数刚刚将HTML中的.sendToJS语句转换成如下数组
    句子=[
    “.box1为单击,将背景更改为绿色”,
    “.box2是dblclick,将高度更改为200px”,
    “.box3悬停,将边框更改为红色”,
    “.box4为单击,将边框半径更改为20px”,
    “.box5为单击,将转换更改为.3s”,
    ]
    句子。forEach(函数(s,i){
    断开=/(^.+?(?=,)(,\s)(.*)/g.exec(s)
    a=断裂[1]
    b=断裂[3]
    c=/(*)是(\w+$)/g.exec(a)
    d=/(\w+)(.*)(至)(.*)$/.exec(b)
    who=“””+c[1]+“//示例.box1
    evt=“””+c[2]+“//示例单击
    change=“”+d[2]+“//背景示例
    to=“””+d[4]+“//绿色示例
    //由于某种原因,我不能让这个部件工作
    //我有一切必要的工作…但它不会工作
    $(who).on(evt,function(){
    $(who).css(更改为)
    console.log('已执行')
    });
    });
    
    正文{
    背景:#E7F0F6;
    显示器:flex;
    对齐项目:居中;
    证明内容:中心;
    }
    sendToJS先生{
    宽度:0px;
    高度:0px;
    溢出:隐藏;
    }
    .盒子{
    宽度:100px;
    高度:100px;
    背景:白色;
    利润率:10px;
    边界半径:10px;
    位置:相对位置;
    过渡:.3s;
    }
    .盒子:悬停{
    盒影:0px 15px rgba(0,0,0,0.25),0px 0px 1px#36BCFF;
    }
    
    如果单击.box1,则将背景更改为绿色。如果选中了.box2,请将高度更改为200px。如果.box3悬停,请将边框更改为红色。如果单击.box4,则将边框半径更改为20px。如果单击.box5,则将转换更改为.3s。
    
    无需在所有提取的值周围添加单引号。你也没有声明你的变量

    hover
    不是有效事件,请分别使用
    mouseenter
    mouseleave
    编写脚本

    固定代码:

    //hocuspocus
    //一个函数刚刚将HTML中的.sendToJS语句转换成如下数组
    变量句=[
    “.box1为单击,将背景更改为绿色”,
    “.box2是dblclick,将高度更改为200px”,
    “.box3是鼠标指针,将边框更改为3px纯红”,
    “.box3已删除鼠标,请将边框更改为无”,
    “.box4为单击,将边框半径更改为20px”,
    .box5已单击,将转换更改为.3s
    ];
    句子。forEach(函数(s,i){
    var-breaked=/(^.+?(?=,)(,\s)(.*)/g.exec(s);
    var a=断裂[1];
    var b=断裂[3];
    var c=/(*)是(\w+$)/g.exec(a);
    变量d=/(\w+)(.*)(到)(.*)$/.exec(b);
    var who=c[1];//example.box1
    var evt=c[2];//示例单击
    var change=d[2];//背景示例
    var to=d[4];//绿色示例
    //由于某种原因,我不能让这个部件工作
    //我有一切必要的工作…但它不会工作
    $(who).on(evt,function(){
    $(who).css(更改为);
    console.log('executed');
    });
    });
    
    正文{
    背景:#E7F0F6;
    显示器:flex;
    对齐项目:居中;
    证明内容:中心;
    }
    sendToJS先生{
    宽度:0px;
    高度:0px;
    溢出:隐藏;
    }
    .盒子{
    宽度:100px;
    高度:100px;
    背景:白色;
    利润率:10px;
    边界半径:10px;
    位置:相对位置;
    过渡:.3s;
    }
    .盒子:悬停{
    盒影:0px 15px rgba(0,0,0,0.25),0px 0px 1px#36BCFF;
    }
    
    如果单击.box1,则将背景更改为绿色。如果选中了.box2,请将高度更改为200px。如果.box3悬停,请将边框更改为红色。如果单击.box4,则将边框半径更改为20px。如果单击.box5,则将转换更改为.3s。
    
    “正在执行的示例”-您如何知道正在执行的是什么,而不是说,
    $(“.box1”).css('background'”、'green')
    ?我只想说…
    $('box1').css('background','green')
    好吧……这是所有这些示例的外观。“应该看起来”,对吧。但不是“实际执行的是什么”。差别很大。
    red
    不是CSS
    border
    属性的有效值。它应该是
    1px纯红
    或类似颜色。实际上
    悬停
    不是有效事件。分别使用
    mouseenter
    mouseleave
    编写脚本。