1
var searchp   = $('body'),
    searchval = searchp.html(),
    name      = ['Abraham Lincoln', 'George Washington'];
    cname     = name.toLowerCase().replace(/ /g, ''),
    restr     = searchval.split(name).join('<a href="#" data-name="'+cname+'">'+name+'</a>');

searchp.html( replacestr );

我需要一些关于小替换功能的帮助。如果我使用 name='string name',它可以正常工作,但我无法让它与数组一起使用。希望你能帮助我。

4

1 回答 1

1

您尝试调用toLowerCase()不提供任何toLowerCase()方法的 Array。相反,您应该在该数组中指定一个项目,例如:

cname     = name[0].toLowerCase().replace(/ /g, ''),

这很容易发现您打开浏览器的控制台,因为在 Chrome 中运行它给了我以下消息:

未捕获的类型错误:对象亚伯拉罕林肯,乔治华盛顿没有方法“toLowerCase”

正如对您问题的评论表明您可能不想对元素的索引进行硬编码,而是使用循环。我试图摆弄你的代码,但似乎#body缺少一些输入以在你的行中获得一些语义,所以我只能提供一个建议,如何循环遍历一组 srings:

var name = ['Abraham Lincoln', 'George Washington'];
$(name).each(function(key, value){
    console.log(value.toLowerCase());
});

​
于 2012-09-09T15:00:00.317 回答