我有一个 JS 函数在 A 标签上的 onclick 事件后激活。这是代码:
(function(MTM) {
MTM.selectAllNone = function(e) {
var string = e.target.textContent || e.srcElement.innerText;
var list = document.getElementById('my-div');
var inputs = list.getElementsByTagName('input');
var length = inputs.length;
if (string == 'Select all') {
for (var i=0; i<length; i++) {
if (inputs[i].getAttribute('type') == 'checkbox') {
inputs[i].setAttribute('checked', 'checked');
}
}
string = 'Select none';
}
else {
for (var i=0; i<length; i++) {
if (inputs[i].getAttribute('type') == 'checkbox') {
inputs[i].removeAttribute('checked');
}
}
string = 'Select all';
}
};
}(window.MTM = window.MTM || {}));
在 A 标签上,它是这样的:
<a href="javascript:void(0);" onclick="MTM.selectAllNone(event);">Select all</a>
现在,在调试时,我可以看到“string”包含文本“Select all”。它很好地通过了if (string == 'Select all')
。以及线路string = 'Select none';
确实改变了字符串变量。但它不会更改 anchor 标记的文本。
也许有一些显而易见的事情?
最佳答案
var string = e.target.textContent
并不意味着 string
成为 e.target.textContent
的别名,它意味着字符串
points相同的值。当您执行 string = "blah"
时,您只是指向 string
不同的值。您需要将e.target
的属性.textContent
指向您想要的新值。
if (e.target.textContent != null) e.target.textContent = "Select all"
if (e.srcElement.innerText != null) e.srcElement.innerText = "Select all"
关于javascript - insideText 显示内容但不允许我更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6840588/