我已经有了这个功能来重建链接的一些输入(我需要摆脱空格,逗号,特殊字符 - 那种东西):
function linkbuilding(a) {
if (jQuery.inArray(' ',a)){
a = a.replace(/ /g, "-");
}
if (jQuery.inArray(',',a)){
a = a.replace(/,/g, "");
}
if (jQuery.inArray('ë',a)){
a = a.replace(/ë/g, "e");
}
console.log(a + " value");
}
var plantNameLinkBuild = jQuery("span.plant-name");
plantNameLinkBuild.each(function(){
var lnkName = jQuery(this).text().trim();
linkbuilding( lnkName );
jQuery(this).wrap('<a href="../kruiden-a-z/'+lnkName+'"></a>');
});
所以函数linkbuilding在lnkName(linkbuilding(lnkName))上运行,来自console.log,我看到值发生了变化。
但它没有更新lnkName
变量原始输入 - 我没有得到更正的值。所以我最后仍然得到了与空格等的链接。
我哪里错了?我怎样才能做到这一点?
谢谢!
答案 0 :(得分:1)
function linkbuilding(a) {
if (jQuery.inArray(' ',a)) {
a = a.replace(/ /g, "-");
}
if (jQuery.inArray(',',a)){
a = a.replace(/,/g, "");
}
if (jQuery.inArray('ë',a)){
a = a.replace(/ë/g, "e");
}
console.log(a + " value");
return a;
}
var plantNameLinkBuild = jQuery("span.plant-name");
plantNameLinkBuild.each(function(){
var lnkName = jQuery(this).text().trim();
lnkName = linkbuilding( lnkName );
jQuery(this).wrap('<a href="../kruiden-a-z/'+lnkName+'"></a>');
});
变量是按值传递的,而不是通过引用传递的,因此您需要使函数返回新值,然后使用函数的结果更新原始变量:
var lnkName = linkbuilding(jQuery(this).text().trim());
或者只是:
linkbuilding()
另请注意,您可以使用正则表达式简化function linkbuilding(text) {
return text.replace(/,/g, '').replace(/ë/g, 'e').replace(/\s+/g, '-');
}
函数:
CREATE OR REPLACE PACKAGE BODY VISIONEMPLOYEES AS
PROCEDURE Employees(
p_id IN NUMBER,
p_ref_cursor OUT sys_refcursor )
AS
BEGIN
OPEN p_ref_cursor FOR
SELECT id, name, age FROM emp WHERE id = p_id;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END Employees;
END VISIONEMPLOYEES;