Форматирование литералов шаблона / проблема синтаксиса - PullRequest
2 голосов
/ 03 октября 2019

Я борюсь, потому что я выполнил этот цикл for с jQuery, но я не могу получить никакого вывода, и я верю, что это потому, что мой синтаксис для литералов шаблона портит мой код. Я не знаю, как правильно написать эту строку, я пробовал много раз, но не могу заставить ее вернуться правильно. Спасибо за вашу помощь!

let characterArray = ['a', 'b', 'c', 'd'] //test
let propertiesArray = ['abc', 'def', 'ghi'] //test

function data() {
    for (let i=0; i < characterArray.length; i++) {
        for(let j=0; j < propertiesArray.length; j++) {
            `$('#${characterArray[i]}').attr('data-${propertiesArray[j]}', 
            ${characterArray[i]}.${propertiesArray[j]})`;              
        }    
    }
}

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Литералы шаблона JavaScript - это способ построения сложных / многострочных строк, а не операторов. Вы можете включить их в свои операторы jQuery следующим образом:

let characterArray = ['a', 'b', 'c', 'd'] //test
let properties = ['abc', 'def', 'ghi'] //test

function data() {
    for (let i=0; i < characterArray.length; i++) {
        for(let j=0; j < properties.length; j++) {
            $(`#${characterArray[i]}`).attr(
                `data-${properties[j]}`,
                `${characterArray[i]}.${properties[j]}`
            );              
        }    
    }
}
0 голосов
/ 03 октября 2019
`$('#${characterArray[i]}').attr('data-${properties[j]}', ${characterArray[i]}.${properties[j]})`;

Должно быть

$(`#${characterArray[i]}`).attr(`data-${properties[j]}`, `${characterArray[i]}.${properties[j]}`);

Каждая часть, которую вы хотите преобразовать в строку, должна быть в шаблоне, а не во всей команде.

...