好的,我为我的应用程序构建了一个亵渎旗帜。它的大部分都像魅力一样,除了我似乎无法再将一系列单词作为一个句子连接在一起。
$.each(chatHistory, function(key, obj){
obj.chat_talk = obj.chat_talk.split("+");
if (flagProfanity(obj.chat_talk) === true){
//obj.chat_talk = obj.chat_talk.split(",").join(" ");
$("#chatBody").append(
"<div class='flag'>"+
"<div>"+ obj.chat_name +"</div>"+
"<div>"+"["+ obj.alliance_name +"]:"+"</div>"+
"<div class='chatMsg'>"+ decodeURIComponent(obj.chat_talk) +"</div>"+
"<div class='chatTime'>"+ obj.chat_time +"</div>"+
"</div><br />"
);
}else{
$("#chatBody").append(
//obj.chat_talk = obj.chat_talk.split(",").join(" ");
"<div class='chatName' onclick='warnee($(this).html)'>"+ obj.chat_name +"</div>"+
"<div>"+"["+ obj.alliance_name +"]:"+"</div>"+
"<div class='chatMsg'>"+ decodeURIComponent(obj.chat_talk) +"</div>"+
"<div class='chatTime'>"+ obj.chat_time +"</div>"+
"<br />"
);
}
});//End each loop
我试过了:
obj.chat_talk = obj.chat_talk.split(",").join(" ");
和
obj.chat_talk = obj.chat_talk.join(" ");
都没有奏效。如果没有if语句中的那些行,那么内容就会很好地输出到显示中,只是所有em之间都有逗号。把它们放进去,根本没有输出。
没有关于firebug的错误或警告,也没有来自2个不同JS验证器的任何错误。
内容示例:
"chat": [
{
"chat_type": 0,
"chat_id": 445473683,
"chat_name": "system",
etc,
etc,
"chat_talk": "Chat+messages+here"
},
{
//Another chat message
}
]
这是obj的内容。 obj,chat_thank应该只包含消息部分。然后我将内容拆分为&#34; +&#34;并通过标志功能运行它。
编辑:亵渎标志功能代码
function flagProfanity(object) {
$.each(object, function(key, word){
if ($.inArray(word, blacklist) != -1){
return true;
}
});
return false;
}//End Profanity flag
答案 0 :(得分:0)
这是你的问题
function flagProfanity(object) {
$.each(object, function(key, word){
if ($.inArray(word, blacklist) != -1){
return true;
}
});
return false;
}
返回true;
在匿名函数(键,词)
的上下文中返回因此它始终是假的
function flagProfanity(words) {
var found = false;
$.each(word, function(key, word){
if ($.inArray(word, blacklist) != -1){
found = true;
}
});
return found;
}
会更好用(注意:我更改了输入的名称,以明确这是单词列表,而不是对象)
也
obj.chat_talk = obj.chat_talk.join(" ");
应该是你用来组合字符串数组的东西