我想知道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);
});
即使有人使用DOM更改了ID,也希望ID等于1而不是34。
答案 0 :(得分:0)
您可以使用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>