我有两个jquery选择器,我没有找到第三个"暴力"方法所需的选项.我完全失去了原因.每个看起来都应该是这样,我验证了文件在选择器运行时已完全加载.我在选择器中尝试了每个值和文本,并在我的页面中得到了相同的结果.使用下面的jquery加载方法动态加载html(其中theType是来自html选择控件的值)以及相关的javascript:
var theType = $('#TicketType option:selected').val();
var theId = $("#Id").val();
var url = '/SystemBuildSiteConfigs/' + theType + '/' + theId;
$('#ticketDiv').html("");
$("#ticketDiv").load(url, function (response, status, xhr) {
if (status == "error") {
alert("There was an error loading the " + theType + " form");
}
else {
$.getScript("/Scripts/SiteConfig" + theType + ".js", function () {
});
}
});
Run Code Online (Sandbox Code Playgroud)
有问题的html选择:
<select name="SupportOrganization" class="form-control" id="SupportOrganization">
<option value="">- Please Select -</option>
<option>Auxiliary IT</option>
<option>Business Intelligence</option>
<option>Change Management</option>
<option>Engineering RnD</option>
<option>Enterprise Business Solutions</option>
<option>Enterprise Solutions</option>
<option selected="selected">Hosting</option>
<option>Infrastructure and Operations</option>
<option>Manufacturing</option>
<option>Professional</option>
<option>Support</option>
</select>
Run Code Online (Sandbox Code Playgroud)
第一个选择语句:
$("#SupportOrganization").find('option[value="' + jsonObj.SupportOrganization + '"]').attr("selected", true);
Run Code Online (Sandbox Code Playgroud)
第二个选择语句:
$('#SupportOrganization option[value="' + jsonObj.SupportOrganization + '"]').attr("selected", true);
Run Code Online (Sandbox Code Playgroud)
什么有效:
$('#SupportOrganization option').each(function (idx, ele) {
if ($(ele).val() == jsonObj.SupportOrganization)
$(ele).attr("selected", true);
});
Run Code Online (Sandbox Code Playgroud)
页面段正确加载,并且所有其他用于加载带内容的html控件的javascript正在按预期执行.另一种页面类型加载并触发正确执行类似功能.使用jsfiddle,两个选择器都显示它们正常工作.我通过测试发现的是
我可以使用我发现的可行的方法,只是想知道为什么这不起作用.猜测它与动态加载的html和javascript有关?
如果缺少"value"属性,jQuery .val()函数使用<option>元素的"钩子" 来返回元素的文本内容.您的<option>元素没有"value"属性,因此选择器不匹配.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |