我不能为我的生活找出我所缺少的东西。
在this jsFiddle中,我在dom上隐藏了一个带有两个文本框的div。我想在下拉列表中选择特定选项时显示div。
这是隐藏/显示的div:
<div id="movieAddNewDirector">
<label id="lblMovieAddDirector">Add a New Director:</label>
<br />
<label for="txtMovieAddNewDirectorFirstName">First Name:</label>
<input type="text" name="txtMovieAddNewDirectorFirstName" id="txtMovieAddNewDirectorFirstName" size="20" />
<br />
<label for="txtMovieAddNewDirectorLastName">Last Name:</label>
<input type="text" name="txtMovieAddNewDirectorLastName" id="txtMovieAddNewDirectorLastName" size="20" />
</div>
这是相关的jQuery代码
$('#ddlMovieAddDirector').change(function () {
var id = $(this).find('option:selected').attr('id');
alert('id: ' + id);
if (id == '#optMovieAddDirectorNew') {
alert('attempting to show new director div');
$('#movieAddNewDirector').show();
} else {
alert('id didn\'t match - id: ' + id);
$('#movieAddNewDirector').hide();
}
});
“id not match”总是显示,即使选择第二个选项时,显示检测到的ID的第一个警告显示应显示div的正确ID!
我知道我在jQuery中有正确的ID,但我不明白为什么这不起作用。我有一些非常相似的工作,用于显示/隐藏div的单选按钮选择。
非常感谢任何帮助!
答案 0 :(得分:7)
更改if (id == '#optMovieAddDirectorNew') {
:if (id == 'optMovieAddDirectorNew') {
“#”符号不是id的一部分,它只用于在选择器中查找id
和JSfiddle http://jsfiddle.net/BG4Dg/1/