我试图检查并确定其值为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>
答案 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
返回字符串)。