gpt4 book ai didi

javascript - 作为参数传递的函数,有自己的未定义参数,但仍然有值

转载 作者:行者123 更新时间:2023-12-02 18:53:15 24 4
gpt4 key购买 nike

我正在使用稍微修改的版本,将关键字转换为此处另一个问题中提供的链接。

代码(有一些遗漏)如下:

$(".keyword_search").each(function() {
var targetword = 'TEST';
var explanation = 'Is something you do to find out if stuff works';
//targetword and explanation actually defined in a loop, but omitted here
var content = $(this)[0];
var re = new RegExp("(\\b"+targetword+"\\b)", "gi");
content.innerHTML = content.innerHTML.replace(re,keywordconvert);
}

function keywordconvert(str, p1, offset, s ) {
return '<a href="#" data-toggle="tooltip" title="'+p1+'">'+p1+'</a>';
}

我对这段代码有几个疑问。

1) keywordconvert 的参数在哪里定义的? strp1都包含要替换的字符串,offset包含内容中单词的起始点,s 包含内容

2) 我如何将解释字符串添加到 keywordconvert 函数中链接的 title 类中?换句话说,我如何向这个函数添加参数?

任何帮助将不胜感激,我已经在网上寻找答案太久了。

最佳答案

1) Where are the parameters of keywordconvert defined?

String#replace定义。当您使用正则表达式作为搜索和函数作为替换来调用 replace 时,它会使用匹配的字符串、定义的任何捕获组以及匹配发生的偏移量来调用该函数,并且最后是字符串本身。由于传入的正则表达式定义了一个捕获组,这意味着 str 将是匹配的子字符串,p1 将是捕获组的内容,offset 将是字符串内的索引(偏移量),s 将是调用 replace 的整个字符串。

2) How would I go about adding the explanation string to the title-class of the the link in the keywordconvert function?

您可能必须在 each 迭代器函数中创建自己的函数,这并不理想,例如:

$(".keyword_search").each(function() {
var targetword = 'TEST';
var explanation = 'Is something you do to find out if stuff works';
//targetword and explanation actually defined in a loop, but omitted here
var content = $(this)[0];
var re = new RegExp("(\\b"+targetword+"\\b)", "gi");
content.innerHTML = content.innerHTML.replace(re,function(str, p1, offset, s) {
return keywordconvert(str, p1 + explanation, offset, s);
});
});

请注意,在我有 p1 + 解释 的地方,我假设您想做一些更有趣的事情,但设置 title 的是 p1 .

关于javascript - 作为参数传递的函数,有自己的未定义参数,但仍然有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15610545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com