Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript更新html标记_Javascript_Html - Fatal编程技术网

使用javascript更新html标记

使用javascript更新html标记,javascript,html,Javascript,Html,[已解决] 下面的代码应该检查第一个下拉选择菜单的值,id=country,并根据当前选择的值更改第二个菜单的下拉选项。下面是我试图解决这个问题,但它不工作:任何帮助 编辑:我开始认为“var country”的值在手动更改时没有更新,可能是onChange不起作用吗?我使用的是chrome,所以应该支持它 <div id="forum2"> <form action="#forumhandler.php"> <fieldset&g

[已解决] 下面的代码应该检查第一个下拉选择菜单的值,id=country,并根据当前选择的值更改第二个菜单的下拉选项。下面是我试图解决这个问题,但它不工作:任何帮助

编辑:我开始认为“var country”的值在手动更改时没有更新,可能是onChange不起作用吗?我使用的是chrome,所以应该支持它

     <div id="forum2">
     <form action="#forumhandler.php">
       <fieldset>
       <legend>Shipping Calculator</legend>
       Country:<br>
          <select id="country" onChange='fieldcheck()'>
           <option value="us">United States</option>
           <option value="canada">Canada</option>
          </select>
       <br><br>
       Province/State:<br>
        <select id="state" >
          <option value="s1">Ontario</option>
          <option value="s2">Quebec</option>
        </select>
       </fieldset>
    </form>
    </div>

<script>
        var country = document.getElementById("country");
        var state = document.getElementById("state");

        function fieldcheck() {
            if (country.value == "us") {
                state.options[0].value = "U1";
                state.options[1].value = "U2";
            } else if(country.value == "canada"){
                state.options[0].value = "C1";
                state.options[1].value = "C2";
            }
        }
    </script>

尝试将脚本标记放在结束正文标记之前。在当前位置,它试图确定state的值,该值为null,因为当该文档选择器行运行时,id为state的元素不存在

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    var country = document.getElementById("country");
    var state = document.getElementById("state");
});

function fieldCheck() {
    if (country.value == "us") {
       state.options[0].value = "U1";
       state.options[1].value = "U2";
    } else if(country.value == "canada"){
        state.options[0].value = "C1";
        state.options[1].value = "C2";
    }

     alert("first option value is " + state.options[0].value + " and second option value is " + state.options[1].value);
}
</script>

这是你的工作代码。希望它能帮助您解决控制台中的错误?我使用记事本+,不幸的是,我没有安装调试器n控制台插件。所以您希望我们为您调试它?您使用的浏览器没有开发工具??哈哈,我现在明白了,我没有控制台错误。n我想知道我的名字是否帮助您告诉我-1 XY您在更改所选国家/地区时出现错误,因为国家/地区id为空,请尝试在inspect元素中查看控制台,例如firebugTry将您的标记放在结束标记之前,抱歉,但我不确定这是什么意思,这是否意味着我将脚本标记放在id=forum2的div的结束标记之后?html元素的标准组织是:您的内容位于开始标记和结束标记之间。建议的标签位置就在结束标签之前。在身体内所有其他内容之后的意思。这确保了您试图对DOM元素进行的任何操作都能正常工作,因为这些元素已经加载到页面上。如果试图在元素添加到页面之前对其进行更改,代码将无法正常运行。我尝试将脚本标记放在的结束标记之后、的结束标记之前以及结束正文标记之后/之前。检查后,我仍然无法在运行页面时输出所需的结果。我没有在上面的空白处上传我所有的代码,但是上面所有的代码都在body标签中-下面是我如何按标签组织的谢谢你的回复,但不幸的是,代码也不起作用。你可以在inspect元素中看到结果,你只想更改值或整个选项吗?是的,谢谢宝贝!我试图更新.innerHTML,但我只是在更新值x。。谢谢你,我希望我能给你一些好的分数