对象在分配其innerhtml属性后变为null

时间:2014-07-29 07:57:10

标签: c# html geckofx

我正在尝试替换html元素中的一些代码。有一次,我在网页中添加了一些文本。在其他我需要删除它(它是基于geckofx的浏览器中的简单搜索引擎)

if (element.OuterHtml.Contains(spanStyle))
    if (element.Parent != null)
    {
         string oldHtml = element.OuterHtml;
         string newHtml = oldHtml.Replace(spanStyle, "").Replace("</span>", "");
         element.Parent.InnerHtml = newHtml;
    }

问题在于我无法替换该元素的OuterHtml - 相反,我试图替换它的父母的InnerHtml。

但是,只要执行element.Parent.InnerHtml = newHtml;,element.Parent就会变为null,并且元素的OuterHtml仍然包含span元素。我甚至尝试替换element.Parent.InnerHtml的文本内容,以查看问题是否在删除标记,但显然它没有任何区别 - 只要我分配element.Parent.InnerHtml,{{1} }变为空。

干杯!

的Bartosz

1 个答案:

答案 0 :(得分:1)

如果更改父元素的InnerHtml,则子元素显然不再是父元素的子元素,因此element.Parent变为null。您是否尝试将element.Parent存储在这样的临时变量中?

var parent = element.Parent;
...
element.Parent.InnerHtml = newHtml;
...
// do something with the variable parent here which should not be null