我正在努力弄清楚如何将<div id>
传递给另一个javascript。例如,在我的页面的开头,我有以下脚本,它创建一个div id标签,允许我动态选择和更改页面的内容。
$(document).ready(function() {
$("select").change(function() {
var subFolder = $(this).val();
$('#folderName').text(subFolder);
$('#stats').attr('src', '/hardware/' + subFolder + '/stats/usage.txt');
$('#hostInfo').attr('src', '/hardware/' + subFolder + '/stats/host.txt');
$('#folderContent').show();
});
$.ajax({
url: 'getFolders.php',
type: 'GET',
dataType: 'json',
success: function(json) {
var $selectBox = $('#folderList');
$.each(json, function(i, value) {
$selectBox.append($('<option>').text(value).attr('value', value));
});
$selectBox.change();
}
});
});
这允许我执行以下操作 - 这将创建一个选择器,可以选择特定的文件夹。
<div class="hidden-print">
<select id='folderList'></select>
</div>
当选择上面的文件夹列表时,它允许我更改以下项目的内容:
像上面的另一个java脚本一样。$(document).ready(function() {
$('#example3').DataTable( {
"processing": true,
"ajax": {
"url" : "../../reports/drives.txt",
"dataSrc" : ""
},
"columns": [
{ "data": "Hostname.Name" },
{ "data": "Name"}
]
} );
} );
当我从选择器中选择上面的文件夹时,我希望修改AJAX下的URL下的文件夹以进行更新。
更新
在进一步研究之后,我不认为我的解释非常合适。
$(document).ready(function() {
$("select").change(function() {
var subFolder = $(this).val();
$('#folderName').text(subFolder);
$('#folderLogo').attr('src', '/server/' + subFolder + '/Logo/hardware.png');
$('#folderContent').show();
});
$.ajax({
url: 'getFolders.php',
type: 'GET',
dataType: 'json',
success: function(json) {
var $selectBox = $('#folderList');
$.each(json, function(i, value) {
$selectBox.append($('<option>').text(value).attr('value', value));
});
$selectBox.change();
}
});
});
var thisId = $('folderList').attr('id');
我想接受这个应该是单个文件夹的变量,并在下面的脚本中使用它。
var subFolder = $(this).val();
$('#folderName').text(subFolder);
$('#folderLogo').attr('src', '/server/' + subFolder + '/Logo/hardware.png');
我想采用&#34;子文件夹&#34;并使用类似下面的内容:
$(document).ready(function() {
$('#example3').DataTable( {
"processing": true,
"ajax": {
"url" : "/server/" + subfolder + "/Stats/Map.txt",
"dataSrc" : ""
},
"columns": [
{ "data": "Hostname.Name" },
{ "data": "Name"}
]
} );
} );
我尝试使用下面的方法来获得div id转换,当我尝试这种方式时,它没有任何数据。我应该说我想在上面的脚本中使用子文件夹中的变量...我尝试了一个window.variable名称我已经尝试了全局变量,但似乎仍然没有正常工作。我的猜测是,处理变量的方式并未延续。
答案 0 :(得分:2)
您可以使用$('#folderList').attr('id')
访问ID。
将其分配给变量并将其传递给您的函数。如果使用$(document).ready()加载单独的脚本,除非它是全局变量,否则它可能不可用。
这样的事情可能对你有用。
var thisId = $('#folderList').attr('id');
$(document).ready(function() {
$('#'+thisId).append('whatever');
} );
答案 1 :(得分:0)
你也可以使用window.variable = value
在jQuery函数中传递它,它将被视为该窗口对象的全局变量。
答案 2 :(得分:0)
在您的帮助下,我能够诊断并找到问题。当变量在函数之外时,它不会运行。通过将其添加到document.ready函数中,它将通过更改下拉列表来保留变量。然后发现因为数据表结构有多个初始化 - 我必须添加“destroy”flag = true。这会破坏旧的数据表,并允许在更改文件夹后创建新的数据表。
$(document).ready(function() {
$("select").change(function() {
var subFolder = $(this).val();
$('#folderName').text(subFolder);
$('#folderLogo').attr('src', '/hardware/' + subFolder + '/Logo/hardware.png');
$('#hdstats').attr('src', '/hardware/' + subFolder + '/hdstats/hdstats.csv');
$('#folderContent').show();
$('#example3').DataTable( {
"destroy": true,
"processing": true,
"ajax": {
"url" : "/hardware/" + subFolder + "/hdstats/stats.txt",
"dataSrc" : ""
},
"columns": [
{ "data": "Hostname.Name" },
{ "data": "Name"}
]
} );
});
$.ajax({
url: 'getFolders.php',
type: 'GET',
dataType: 'json',
success: function(json) {
var $selectBox = $('#folderList');
$.each(json, function(i, value) {
$selectBox.append($('<option>').text(value).attr('value', value));
});
$selectBox.change();
}
});
});