.replace() 仅适用于多个文本实例
.replace() only working once for multiple instances of text
我有一个 JQuery UI 对话框,其中显示了对表单提交中的输入所做的更改。我希望 'New' 这个词是不同的颜色,但它只会改变第一次出现的地方。
为什么 replace() 函数适用于我的换行符,但不适用于 css 更改?
var i;
for(i = 0; i < changed_arr.length; i++) {
var oldValue = changed_arr[i].oldValue;
var newValue = changed_arr[i].newValue;
str += changed_arr[i].key + ": Old - " + oldValue + ", New - " + newValue + "\n";
}
error_text = $('#dialog_confirm p').text("Please confirm your update\nbefore proceeding.\n\nChanges for <?= $edit_domain;?>: \n\n" + str);
//The new line works multiple times, but not the css change
error_text.html(error_text.html().replace(/\n/g, '<br/>').replace('New', '<span style="color:yellow;">New</span>'));
$('#dialog_confirm').dialog('open');
}
您需要为 "New" 添加 g
(全局)和可能的 m
(多行)修饰符:
replace(/New/gm, '<span style="color:yellow;">New</span>')
它应该像换行符一样替换所有出现的地方。
示例:
我有一个 JQuery UI 对话框,其中显示了对表单提交中的输入所做的更改。我希望 'New' 这个词是不同的颜色,但它只会改变第一次出现的地方。
为什么 replace() 函数适用于我的换行符,但不适用于 css 更改?
var i;
for(i = 0; i < changed_arr.length; i++) {
var oldValue = changed_arr[i].oldValue;
var newValue = changed_arr[i].newValue;
str += changed_arr[i].key + ": Old - " + oldValue + ", New - " + newValue + "\n";
}
error_text = $('#dialog_confirm p').text("Please confirm your update\nbefore proceeding.\n\nChanges for <?= $edit_domain;?>: \n\n" + str);
//The new line works multiple times, but not the css change
error_text.html(error_text.html().replace(/\n/g, '<br/>').replace('New', '<span style="color:yellow;">New</span>'));
$('#dialog_confirm').dialog('open');
}
您需要为 "New" 添加 g
(全局)和可能的 m
(多行)修饰符:
replace(/New/gm, '<span style="color:yellow;">New</span>')
它应该像换行符一样替换所有出现的地方。
示例: