javascript - HTML DOM getElementById()-Node JS

标签 javascript jquery

我有这段代码,可以根据该元素的 ID 为 html 页面的不同部分添加值, 代码工作完美,没有问题,但我正在寻找一种更好、更高效的解决方案来替换所有 getelementbyid 功能(如果有)

这意味着是否有另一种方法可以减少下面代码的大小并用另一种方法进行更改

我的代码如下:

$('#public-event').modal('show');
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: '/envoi/update/' + id,
        })
            .done(function (data) {
                var html = ""
                console.log(data);

                for (let i = 0; i < data.length; i++) {
                    if (id === data[i].events._id) {
                        console.log(data[i].events.title)
                        document.getElementById("title").innerHTML = data[i].events.title;
                        document.getElementById("eventDateTime").innerHTML = `${data[i].events.eventDate} at ${data[i].events.targetReminder} | ${data[i].events.targetAmPM}`;
                        document.getElementById("createBy").innerHTML = data[i].events.author;
                        document.getElementById("dateCreation").innerHTML = data[i].events.author;
                        document.getElementById("description").innerHTML = data[i].events.caption;
                        document.getElementById("pubpriv").innerHTML = data[i].events.category;
                        document.getElementById("location").innerHTML = data[i].events.location;
                        $('#monImage').attr('src', 'img/sam.jpg');
                        $('#eventImage').attr('src', 'uploads/' + data[i].events.img);
                        document.getElementById("deleteButtn").setAttribute('data-id', data[i].events._id);
                        document.getElementById("completeButtn").setAttribute('data-id', data[i].events._id);
                        document.getElementById("CommentButtn").setAttribute('data-id', data[i].events._id);
                        document.getElementById("CommentButtn").setAttribute('data-content', data[i].events.author);
                        document.getElementById("likeButton").setAttribute('data-id', data[i].events._id);
                        document.getElementById("likeButton").setAttribute('data-content', data[i].events.author);
                        document.getElementById("showComment").setAttribute('data-id', data[i].events._id);
                        document.getElementById("comment-number").innerHTML = data[i].events.comments.length +' Comments';
                        //to modify imges with dynamic
                    }

感谢您的建议,

最诚挚的问候,

最佳答案

您的代码由原生 JS 和 jQuery 组成,原生更为冗长。 jQuery 自己的口号是:“少写,多做”——所以这是值得借鉴的一点。而且,某些元素需要特定类型的格式,因此需要明确的声明。您还可以将重复值合并到一个语句中。

$('#title').text(data[i].events.title)
$('#eventDateTime').text(`${data[i].events.eventDate} at ${data[i].events.targetReminder} | ${data[i].events.targetAmPM}`)
$('#createBy, #dateCreation').text(data[i].events.author)
$('#description').text(data[i].events.caption)
$('#pubpriv').text(data[i].events.category)
$('#location').text(data[i].events.location)
$('#monImage').attr('src', 'img/sam.jpg')
$('#eventImage').attr('src', 'uploads/' + data[i].events.img)
$('#deleteButtn, #completeButtn, #CommentButtn, #likeButton, #showComment').attr('data-id', data[i].events._id)
$('#CommentButtn, #likeButton').attr('data-content', data[i].events.author)
$('#comment-number').text(`${data[i].events.comments.length} Comments`)

如果您的值确实只是文本且不包含 HTML,那么使用 .text 而不是 .html 也值得注意。否则,替换为 .html 也没有什么坏处。

关于javascript - HTML DOM getElementById()-Node JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62011657/

相关文章:

javascript - 使用 jQuery 在 span 中添加一个 ✔ 刻度线

javascript - React-data-grid - 使用全局变量更改单元格值

javascript - 仅从 javascript 中的 JSON 对象中提取值而不使用循环

javascript - Javascript 中数组的排序和中值

javascript - 保存动态生成的div的toggleClass状态并使用Cookie/LocalStorage存储

jquery - 内容少时出现页脚空白

javascript - 我有一个包含数千个带有 URL 属性的项目的数组。如何为数组中的每个项目创建一个按钮,以打开 URL 的 iframe?

javascript - 根据特定的字符序列将文本分成组

javascript - 在移动浏览器中使用 jQuery Accordion 是否太慢?

javascript - 通过ajax从select框获取值到mysql