【问题标题】:Access tag "option" in HtmlElement在 HtmlElement 中访问标签“选项”
【发布时间】:2012-11-10 20:06:35
【问题描述】:

需要改变这个:

<select name="asdf">
    <option selected>a</option>
    <option>b</option>
    <option>c</option>
</select>

我得到了HtmlElement,但无法通过htmlEle.SetAttribute("value", "c");更改它

我想将所选选项从 a 更改为 c

【问题讨论】:

  • 什么不起作用?你有任何错误吗?
  • 不,它只是不会更改为我想更改的组合框
  • 您到底想在组合框中更改什么?
  • 当前为“a”的组合框的选定项我想更改为“c”
  • 这仍然未指定。您希望选项为 c、b、c 吗?听起来很奇怪。还是您真的要选择第三个选项?

标签: c# html


【解决方案1】:

一旦你有了元素,你就可以循环遍历子元素并更新 selected 属性:

var ele = webBrowser1.Document.GetElementById("asdf");

if (ele != null)
{
    foreach (HtmlElement child in ele.Children)
    {
        child.SetAttribute("selected", "false");
        if (child.InnerText == "c")
            child.SetAttribute("selected", "true");
    }
}

【讨论】:

    【解决方案2】:

    这很容易用

    htmlEle.value = "c";
    

    Live DEMO

    【讨论】:

    • 为什么要删除 C# 标签?基于术语HtmlElementSetAttribute 调用,很明显他正在将html 加载到C# 网络浏览器中并试图通过那里对其进行操作。
    • c# 没有得到 htmele 上的成员值:\
    • @JohnKoerner。抱歉,这对我来说一点也不明显。写作过去和现在都很糟糕。 :(
    【解决方案3】:

    假设:htmlEle 是选项元素,

    C#:请尝试:

      htmlEle.textContent = "a1";
    

    使选项显示为已选中,

     htmlEle.setAttribute("selected", "true");
    

    HTML/JavaScript:

    您的意思是要将第一个选项的显示值从a 更改为c,然后尝试以下操作:

          htmlEle.innerHTML = "c";
    

    使选项显示为已选中,

        htmlEle.setAttribute("selected", "selected");

    如果我有一个ID 分配给选择框:

          <select name="asdf" id="selectBox">
             <option selected>a</option>
             <option>b</option>
             <option>c</option>
           </select>
    

    然后

      var selectElem = document.getElementById("selectBox");
      selectElem.childNodes[1].innerHTML = "a1";
    

    将第一个选项的值更改为a1

    【讨论】:

    • 这不是他想做的。您所写的内容清除了所选项目的所有 innerHTML。问题... :)
    • @gdoron:我没有处理 select 元素,我正在更新 option 元素。请参考答案中的示例并尝试自己。
    • @Downvoter:请发表评论以了解问题。
    • 我没有投反对票,但这似乎没有达到他的要求。 (顺便说一句,他想要 C# 代码,而不是我们都使用的 js。)
    • @gdoron:问题并不清楚,因此回答了。更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 2012-01-06
    • 1970-01-01
    相关资源
    最近更新 更多