Javascript 如何将ID添加到select>;选择的选项元素

Javascript 如何将ID添加到select>;选择的选项元素,javascript,jquery,html,Javascript,Jquery,Html,如何向select>选项:selected HTML元素添加ID 这是到目前为止我的代码 <!-- select time zone --> <div class="row"> <div class="col-md-6 col-md-offset-3"> <h3 id="stepOne"><b>Step 1:</b> Select your Time Zone</h3&g

如何向select>选项:selected HTML元素添加ID

这是到目前为止我的代码

<!-- select time zone -->
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <h3 id="stepOne"><b>Step 1:</b> Select your Time Zone</h3>
            <select class="form-control" name="timeZone" id="getTimeZone" onchange="getTimeZone()">
                <?php foreach ($time_zones as $key => $array) : ?>
                    <?php foreach ($array as $offset => $zone) : ?>
                        <option value="<?php echo $offset; ?>"><?php echo $zone; ?></option>
                    <?php endforeach; ?>
                <?php endforeach; ?>
            </select>
        </div>
    </div>
    <!-- end select timezone -->

    <!-- get timezone from dropdown -->
    <script>
        function getTimeZone() {
            // if option is selected add an ID attribute
            // then get that id attributes inner html
            var id = $("#getTimeZone").children("option:selected").attr("timeZoneSelected");
            var timeZone = document.getElementById("getTimeZone").value;
            document.getElementById("showTimeZone").innerHTML = timeZone;
            document.getElementById("timeZoneField").value = timeZone;
            document.getElementById("stepOne").className = "text-success";
        }
    </script>
    <!-- end get timezone from dropdown -->

哪里出错了?

要执行所需操作,只需在
更改
事件处理程序中检索所选选项的
值和内部文本即可。不需要动态更新标识符或类属性。试试这个:

$('#getTimeZone')。更改(函数(){
var name=$(this).find('option:selected').text();
var offset=该值;
$('#name').html(name);
$('#offset').html(offset);
$('#stepOne').addClass('text-success');
});
.text success{color:#0c0;}

步骤1:选择您的时区
CST
格林尼治标准时间
中士

不要为此使用
id
——它们是静态的。改为使用类。另外,似乎您只需要所选选项的
text()
,因为它们都没有
timeZoneSelected
attributeOkay,请注意,但我只希望整个html页面中的一个元素具有“timeZoneSelected”属性。。。所以我想这就是身份证的目的。为了什么?在
选项
元素上放置一个动态标识符是一个非常奇怪的要求,可以使用
选项:selected
非常简单地检索该元素。好的,我正在尝试在用户选择时区后向用户显示用户选择的时区。所有选项的值都是以秒为单位的时区偏移。。。因此,我唯一“获取”用户友好时区字符串的方法是获取html内部的标记。。。然而,当我这样做的时候,我得到了我的每一个时区的HTML,并不漂亮。因此,如果我向用户选择的确切时区添加一个ID,那么我可以得到该ID的innerHTML,它将是用户友好的时区字符串。时区是一个皇家…好的-我为你添加了一个答案绝对令人震惊的Rory,该代码现在非常有意义,非常感谢。好东西,很高兴能提供帮助
var id = $("#getTimeZone").children("option:selected").attr("timeZoneSelected");