我想用列表项中的某些字符串替换下划线,但它不会在列表项的原始文本中进行更改。这是我的代码。如何处理HTML li的文本并在主li中追加
$.each($.parseHTML(customFormSentenceView), function (i, item) {
if ($.parseHTML(customFormSentenceView)[i].outerText.indexOf('_') > -1) {
var startindex = $.parseHTML(customFormSentenceView)[i].outerText.indexOf("_");
var lastindex = $.parseHTML(customFormSentenceView)[i].outerText.lastIndexOf("_");
var len = $.parseHTML(customFormSentenceView)[i].outerText.length;
var initstring = $.parseHTML(customFormSentenceView)[i].outerText.substring(0, startindex);
var endstring = $.parseHTML(customFormSentenceView)[i].outerText.substring(lastindex + 1, len);
$.parseHTML(customFormSentenceView)[i].outerText = initstring + endstring;
}
});
2017-05-30
ARC
+0
我相信''.parseHTML'每次调用它时都会创建一个新对象。这意味着你正在为内存中的元素设置文本,但不在DOM中,因此页面上的内容都不会改变。尝试在页面上自己查找实际项目,并操作它们而不是创建副本(或者创建这些副本,但完全替换DOM中的原始元素)。 –