Javascript 如何将ID添加到select>;选择的选项元素
如何向select>选项:selected HTML元素添加ID 这是到目前为止我的代码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 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");