Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript innerText显示内容,但不允许我更改它_Javascript - Fatal编程技术网

Javascript innerText显示内容,但不允许我更改它

Javascript innerText显示内容,但不允许我更改它,javascript,Javascript,我有一个JS函数在标记上的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

我有一个JS函数在标记上的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标签上,它是这样写的:

现在,在调试时,我可以看到字符串包含文本Select all。它很好地通过了if字符串=='selectall'。行字符串='选择无';不更改字符串变量。但它不会更改锚定标记的文本

可能是一些明显的问题?

var string=e.target.textContent并不意味着string会成为e.target.textContent的别名,它意味着该字符串将被转换为相同的值。当您使用string=blah时,您只是将string指向一个不同的值。您需要将e.target的property.textContent指向所需的新值

if (e.target.textContent != null) e.target.textContent = "Select all"
if (e.srcElement.innerText != null) e.srcElement.innerText = "Select all"
var string=e.target.textContent并不意味着string将成为e.target.textContent的别名,而是意味着该字符串将被转换为相同的值。当您使用string=blah时,您只是将string指向一个不同的值。您需要将e.target的property.textContent指向所需的新值

if (e.target.textContent != null) e.target.textContent = "Select all"
if (e.srcElement.innerText != null) e.srcElement.innerText = "Select all"

我不明白。为什么var string=e.target.textContent | | e.srcmelement.innerText;string='Hello';与e.target.textContent='Hello';不同?var string=e.target.textContent并不意味着string将成为e.target.textContent的别名,而是意味着该字符串将被转换为相同的值。当您使用string=blah时,您只是将string指向一个不同的值。你需要将属性e.target.textContent指向你想要的新值。哦,我明白了,我很愚蠢。据我所见,在JS中,如果不使用object进行任何黑客攻击,就无法通过引用传递变量。谢谢!我不明白。为什么var string=e.target.textContent | | e.srcmelement.innerText;string='Hello';与e.target.textContent='Hello';不同?var string=e.target.textContent并不意味着string将成为e.target.textContent的别名,而是意味着该字符串将被转换为相同的值。当您使用string=blah时,您只是将string指向一个不同的值。你需要将属性e.target.textContent指向你想要的新值。哦,我明白了,我很愚蠢。据我所见,在JS中,如果不使用object进行任何黑客攻击,就无法通过引用传递变量。谢谢!我投你的票。这是我在这里能为你做的最多的事:-我投你的票。这是我在这里能为您做的最多的事情:-