C#选择链接以外的链接下删除下划线

时间:2015-06-23 10:27:40

标签: c# html underline

当我在同时选择链接和文本时,我正在尝试删除链接下的下划线。我知道element = element.children无效,但我找不到办法。

    private void UnderlineExecuted(object sender, ExecutedRoutedEventArgs e)
    {
        if (htmldoc != null)
        {
            htmldoc.Underline();
            IHTMLSelectionObject selec = htmldoc.GetSelection();
            IHTMLElement element = null;
            IHTMLTxtRange txtRange = (IHTMLTxtRange)htmldoc.GetIHTMLDocument2().selection.createRange();
            element = txtRange.parentElement();


            while (element != null
                && !(element.tagName.Equals("A", StringComparison.InvariantCultureIgnoreCase)))
            {
                if (element.tagName.Equals("A"))
                {
                    element.style.setAttribute("text-decoration", "none");
                }
                element = element.children;
            }
        }
    }

知道所选范围的HTML文字是<U>代码,<A>代码和另一个<U>代码。

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

我发现解决方案很简单。我没有以正确的方式搜索。 我不知道我们可以用IHTMLElement创建一个IHTMLElementCollection。 这是我的代码:

possible = None


def solution(N):
    global possible
    possible = list()
    tea(1, [1], N)
    sizes = [len(p) for p in possible]
    return min(sizes)
    pass


def tea(n, l, target):
    global possible
    if (sum(l) > target):
        return
    elif (sum(l) == target):
        possible.append(l)
    i = n * 2
    tea(i, l + [i], target)
    i = n + 1
    tea(i, l + [i], target)

print solution(18)
# should print 5
print solution(220)
# should print 11
print solution(221)
# no such solution? print -1