Я не могу добавить определенный div в модальное окно при извлечении данных с помощью pnp и JavaScript.
Весь процесс объяснил:
Функция DomyApiCalls - РАБОТАЕТ (Вытаскивает все ящики с заголовками)
Фильтрация функций - РАБОТАЕТ (Фильтрирует имена в алфавитном порядке)

Функция getModal - не работает (я хочу, чтобы, когда пользователь нажимает на поле, которое показывает модальное окно, и просто добавляет все файлыHtml в класс .Modalbody.
Это тянет заголовок страницы, вместо этого мне нужно имя папки снизу. 
$(document).ready(function(){
DoMyApiCalls("boxWrap");
var current_title = $(document).attr('title'); //CURRENT_TITLE is supposed to be the "FolderName".
if (current_title == 'Acuvue') {
getModal("Acuvue");
}
});
function DoMyApiCalls(elementId) {
$.ajax({
url: "/bdm/business-development/_api/web/lists/GetByTitle('CompletedSubmissionTiles')/Items?$select=EncodedAbsUrl,Title,Line1,Line2,Hyperlink,TargetWindow,DescriptionHTMLOption,Line1,TileOrder&$orderby=Title asc",
type: "GET",
headers: {
"accept": "application/json; odata=verbose"
},
success: function (data) {
if (data.d.results) {
var object = data.d.results;
var Line1var;
for(var i = 0; i < object.length; i++)
{
if (object[i].Line1 != null) { // Covers 'undefined' as well
Line1var = "<div class='Line1'>" + object[i].Line1 + "</div>";
} else {
Line1var = "";
}
$('#' + elementId).append("<div class='col-md-4 box' data-toggle='modal' data-target='#modal"+object[i].TileOrder+"' id='TileBox"+object[i].TileOrder+"'><div id='titleBox' class='titleBox'><h1>" + object[i].Title + "</h1><div style='width:250px; height: 130px;background-color: white; border: 1px solid lightgrey;'><img style='width: auto; height: inherit; margin-left: auto; margin-right: auto; display: block;' src='" + object[i].EncodedAbsUrl + "' alt='" + object[i].Title +"'/></div></div></div>");
filtering(object[i].Title);
}
}
}
});
};
function filtering(title) {
var filter = "Name eq '" + title + "'";
$pnp.setup({
baseUrl: "/bdm/business-development/"
});
$pnp.sp.web.folders.getByName('Completed Submissions').folders.filter(filter).expand("Files").get().then(function(data){
});
}
function getModal(folderName) {
$pnp.setup({
baseUrl: "/bdm/business-development/Completed%20Submissions/"
});
$pnp.sp.web.getFolderByServerRelativeUrl("/bdm/business-development/Completed%20Submissions/" + folderName).files.orderBy("Name").get().then(function(f) {
var files = '';
$.each(f, function(index, value){
var filesHtml = "<div class='file'>" +
"<a target='_blank' href='" + value.ServerRelativeUrl + "?web=1'><img src='//PublishingImages/wordThumbSmall.png'/></a>" +
"<a target='_blank' href='" + value.ServerRelativeUrl + "?web=1'><p id='fileTitle'>" + value.Title + "</p></a>" +
"</div>";
files = files + filesHtml;
});
$(".Modalbody").append(files);
});
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "modal" class = "modal fade" role = "dialog">
<div class = "modal-dialog modal-lg">
<div class = "modal-content">
<div class = "modal-header">
<button type = "button" class = "close" data-dismiss = "modal"><div id = "x">×</div></button>
<h4 class = "modal-title">
</h4>
</div>
<div class = "modal-body">
<div class = "FT-main-category" style = "margin-top:0px;">
<div class = "FT-main-header ms-WPBody"><strong><span style = "color: white;">Files</span></strong></div>
<div class = "Modalbody">
</div>
</div>
</div>
<div class = "modal-footer">
<button type = "button" class = "btn btn-default" data-dismiss = "modal">Close</button>
</div>
</div>
</div>
</div>В основном мне нужно нацелить var current_title = $(document).attr('title'); на object[i].Title в DomyApiCalls. $(document).attr('title'); не дает мне имя папки.
а? Какое это имеет отношение к вашему модальному? Вы тут отдельную проблему описываете, что ли?
Потому что, когда заголовок соответствует «Acuvue», это должно вызвать функцию getModal(), я надеюсь.
ну, вы не показали нам соответствующий HTML, поэтому мы понятия не имеем, правильно ли вы его определили. Также неясно, какое отношение он имеет к коду внутри DoMyApiCalls.
Таким образом, то, что у меня сейчас есть, заключается в том, что функция getModal() будет вызываться, а filesHtml будет вызываться и добавляться к .Modalbody.
Я это понимаю, но вы спрашиваете, почему $(document).attr('title'); не содержит правильного значения. Я не могу вам этого сказать, потому что не вижу соответствующего HTML-кода вашей страницы.
Если честно, если вы хотите получить заголовок страницы, вам не нужен jQuery. document.title отлично справится с этой задачей.
Извините, это сбивает с толку, я обновил скриншот выше. Поэтому вместо заголовка страницы мне нужно настроить таргетинг на FolderName из DoMyApiCalls.
В порядке. И прежде чем вы упомянули, что имя папки находится в пределах object[i].Title, верно? Таким образом, в обратном вызове DoMyApiCalls вы можете написать getModal(object[i].Title); и таким образом открыть модальное окно. Единственная проблема, которую я вижу, заключается в том, что в object может быть много элементов. И я думаю, вы не хотите открывать модальное окно для всех сразу? Они просто перезаписывали друг друга. Ранее вы упомянули о реакции на щелчок по изображению. Это изображения, созданные в строке $('#' + elementId).append... в рамках обратного вызова, на которые вы хотите обработать нажатие? Эта часть мне до сих пор не ясна
Это правильно, добавление elemendId создает ящики и дает им специальные идентификаторы, которые я хотел связать с модальным «числом». Скажем так, каждое окно будет открывать модальное окно, но содержимое этого модального окна будет извлекаться из разных папок в библиотеке документов SharePoint. Окно «Acuvue» откроет папку «Acuvue» в библиотеке и отобразит все содержимое в модальном окне.
Итак, первое, что вам нужно сделать, это прикрепить событие «щелчок» к каждому полю. В событии клика вы затем вызываете «getModal» с правильным идентификатором. Поскольку вы знаете идентификатор только что созданного поля, вы можете довольно легко создать для него уникальный обработчик кликов. Знаете ли вы, как создать обработчик события «клик» с помощью jQuery?
Я не знаю, но я проведу небольшое исследование в Интернете, чтобы посмотреть, что я могу найти.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


нам нужно немного больше информации, чем "не работает". Какую отладку вы сделали? Если код не делает то, что вы хотите, какой делает он делает? Ошибки? Неожиданное поведение? Просьба уточнить