javascript - 如何在 DOM 更改后获得相同的 ID、值或文本

标签 javascript php jquery html laravel

我想知道是否一个 div 的 id 是 1 并且有人将 id 更改为 34,当有人点击它时 attr('id') 仍然等于 1 即使在更改而不是 34 之后。为我的英语道歉谢谢你。

        $(document).on('click','.edit_btn:eq(0)',function(){
            var itm_id = $(this).siblings('input').attr('id');
            alert(itm_id);

        });

希望 id 等于 1 而不是 34,即使有人用 DOM 更改它也是如此

最佳答案

您可以使用 MutationObserver 来查看属性是否更改,然后再将其更改回来。确保当您将其改回时,它知道忽略该更改。否则您会使浏览器滞后。请注意,任何使用开发工具的猴子都可以禁用此功能。

不要依赖客户端。

let i = 0;
const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

let e = document.querySelector('#test');
setInterval(() => {
  i++;
  // Change
  e.setAttribute('id', i);
}, 1000); // Loop Sleep

let observer = new MutationObserver((mutations) => {
  mutations.forEach((mutation) => {
    if (mutation.type === "attributes") {
      if (e.id !== 'test') {
        let previous = e.id;
        // Revert
        e.setAttribute('id', 'test');
        console.log('Changed to test from', previous)
      }

    }
  });
});

observer.observe(e, {
  attributes: true
});
<div id="test">Test</div>

关于javascript - 如何在 DOM 更改后获得相同的 ID、值或文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55427396/

相关文章:

php - Azure AD B2C 使用 PHP 验证 JWT

PHP 获取我最近插入的上一页的 ID

php - 堆叠 PHP 代码?

javascript - Highcharts 气泡图悬停颜色

jquery - Twitter Bootstrap 按钮 js 不起作用

javascript - 使用 Ñ 字符(拉丁语)在 PhoneGap 上的 SQLite 中查询不给出结果

javascript - 上传到服务器时出现 404 错误 codeigniter

javascript - 用于 JavaScript 的 ECMAScript 2015 (ES6) 标准 polyfills 库?

javascript - jQuery Sortable 插件似乎破坏了序列化方法

javascript - 请求错误: No connection is specified for that request; while connecting to Sql server using express. js?