我正在尝试从变量中获取具有特定数据值的选项,我保存了所有可用选项。
var optionSaver = $('#directory option');
console.log(optionSaver);
$('#projectOrOrganizations').change(function () {
var id = $('#projectOrOrganizations').find(':selected').data('contextid');
console.log(id);
var options = $('option[data-parentid='+id+']', optionSaver);
console.log(options);
$('#directory').html(options);
});
只要更改侦听器处于活动状态,optionSaver就会保留
编辑:
要求的Html:
<select name="project" id="projectOrOrganizations">
<option name="organisationOrProjectName_78" data-contextid="78">Organisationsvorlage</option>
<option name="organisationOrProjectName_80" data-contextid="80"> Projektvorlage</option>
</select>
<select name="directory" id="directory">
<option data-parentid="78" value="Verzeichnis">Verzeichnis</option>
<option data-parentid="80" value="Verzeichnis">Verzeichnis2</option>
</select>
答案 0 :(得分:1)
您需要在此处使用filter(),因为您要查找的option
元素不是optionSaver
的后代,但它是optionSaver
的成员。所以
var options = optionSaver.filter('option[data-parentid='+id+']');
答案 1 :(得分:0)
如果要保存变量数据,则应使用范围更大的变量。您可以在change事件的范围内定义id和options。因此,您应该在change事件中创建一个变量并将其保存在那里。