如何检查getElementById是否有值?

时间:2018-07-18 03:13:12

标签: javascript html dom

我试图检查并确定其值为1,然后该按钮将被禁用

这是我的代码

void * tcp (void * arg){
    struct * info = arg;
    // set up socket fd
    fd = socket(AF_INET, SOCK_STREAM, 0);
    while(True){
        receiveData(info, fd);
    }
}

void * icmp (void * arg){
    struct * info = arg;
    // set up socket fd
    fd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
    while(True){
        receiveData(info, fd);
    }
}

//function that is called by thread 1 and thread 2 concurrently
void receiveData(struct * info, int fd){
    int val = recv(fd, buf, 1000, 0);
}

但是如果上面的语句不起作用。请帮助

这是html

    <script>
document.addEventListener("DOMContentLoaded", function() {
    document.getElementById('add').addEventListener('click', function() {
        document.getElementById('val').innerHTML++;
    });
});
document.addEventListener("DOMContentLoaded", function() {
    document.getElementById('less').addEventListener('click', function() {
        document.getElementById('val').innerHTML--;

    });
});
if(document.getElementById('val')==1){
  document.getElementById('less').disable=true;
}

</script>

2 个答案:

答案 0 :(得分:1)

几点:

  • 您要查找的是.disabled,而不是.disable
  • 您需要检查.innerHTML中的#val是否等于1,而不是元素本身(因此您需要使用if (document.getElementById('val').innerHTML == 1))。
  • 您可能还想在增加或减少数字时进行检查,而不仅仅是页面加载。为此,最好在每个事件监听器中创建一个要调用的函数。
  • 您可能想要一个else条件,如果按钮在1上方,则重新启用按钮。
  • 您可以合并DOMContentLoaded个侦听器。

以下是经过更新的有效代码段,对上述所有内容进行了修改:

document.addEventListener("DOMContentLoaded", function() {

  document.getElementById('add').addEventListener('click', function() {
    document.getElementById('val').innerHTML++;
    check();
  });

  document.getElementById('less').addEventListener('click', function() {
    document.getElementById('val').innerHTML--;
    check();
  });

  function check() {
    if (document.getElementById('val').innerHTML == 1) {
      document.getElementById('less').disabled = true;
    } else {
      document.getElementById('less').disabled = false;
    }
  }

  check();

});
<div id="val">1</div>
<button id="add">Add</button>
<button id="less">Less</button>

答案 1 :(得分:0)

if无效,因为表达式错误。替换为:

if(document.getElementById('val')==1){

与此:

if(document.getElementById('val').innerHTML == 1) {

您需要检查元素的内容,而不是元素本身。此外,innerHTML返回一个字符串。 ==应该可以,但是准确地说,您应该使用=== '1'进行比较。

正如我在评论中所指出的那样,事件处理程序执行时会出现错误,因为您无法递增或递​​减字符串(请记住,innerHTML返回字符串)。