Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 试图理解Railscast第197集(与之前的帖子相关:#17094200)_Javascript_Jquery_Regex_Ruby On Rails 3_Railscasts - Fatal编程技术网

Javascript 试图理解Railscast第197集(与之前的帖子相关:#17094200)

Javascript 试图理解Railscast第197集(与之前的帖子相关:#17094200),javascript,jquery,regex,ruby-on-rails-3,railscasts,Javascript,Jquery,Regex,Ruby On Rails 3,Railscasts,我正在努力使我的页面工作,但我需要了解正则表达式的替换。有人能帮我把这个分解一下吗 function add_fields(link, association, content) { var new_id = new Date().getTime(); var regexp = new RegExp("new_" + association, "g") $(link).parent().before(content.replace(regexp, new_id)); }

我正在努力使我的页面工作,但我需要了解正则表达式的替换。有人能帮我把这个分解一下吗

function add_fields(link, association, content) {
    var new_id = new Date().getTime();
    var regexp = new RegExp("new_" + association, "g")
    $(link).parent().before(content.replace(regexp, new_id));
}
我理解第一行(var new_id=…)以及为什么需要它,但是第二行在做什么,以及id替换是如何工作的

我这样问是因为在我的应用程序中,当单击“添加新行”时,新行会插入到我页面的顶部,而不是它所属的表中

感谢您提供的任何帮助。

热线

    var regexp = new RegExp("new_" + association, "g")
只需创建一个表示匹配模式的
RegExp
对象。(在内部,它“编译”模式,例如,如果重复匹配,它只需提前完成一次所需的所有操作,以便后续使用更高效。)g是代表“全局”的标志,意思是“替换所有匹配项”我不确定什么是
关联
,但该模式将匹配
“新”

下一行

$(link).parent().before(content.replace(regexp, new_id));

使用该模式:使用生成的、唯一的、基于日期时间的id替换上述模式的所有实例。最后,通过
before

将内容放在所有同级节点之前,谢谢Andrew-这很有帮助。“association”变量是我的子模型的名称-例如,我可能有一个订单模型,其中可能有许多“行项目”-在这种情况下,关联将是一个包含名称“行项目”的字符串。我还需要将下一行更改为:$(“.DataRow”).after(content.replace(regexp,new_id));这会将插入的行放在最后一个数据行之后。现在,这部分按我的预期工作。我仍然需要开发一些rails功能,以便在用户单击链接时(而不是页面加载时)实现这一点。