当前位置: 代码迷 >> JavaScript >> 显示不正确
  详细解决方案

显示不正确

热度:24   发布时间:2023-06-13 12:39:50.0

我试图在单击按钮后返回显示值,但是它没有返回正确的值。

我的元素: <div id="my_div" style="display: none;"></div>

单击按钮后: <div id="my_div" style="display: block;"></div>

使用Javascript:

(function () {
  $('#button').trigger('click');

  return document.getElementById('my_div').style.display;
})();

返回:

“没有”

无需单击按钮(仅执行document.getElementById('my_div').style.display ),我将获得正确的输出:

在控制台中执行:

(function () {
  return document.getElementById('my_div').style.display;
})();

返回:

“块”

使用$("#my_div).css('display')返回显示值。

 (function () { // On click $('#my_div').on('click', function(){ console.log($(this).css('display')); }); })(); 
 /* For testing purpose */ #my_div { width:100px; height: 100px; background: #999; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <div id="my_div" style="display:block"></div> 

您可以这样做。

HTML:

<div id="my_div" style="display: none;">
</div>

<button id="button"> Click </button>

JS:

const myDiv = document.getElementById("my_div");

$("button").click(function() {
 console.log(myDiv.style.display);
 return myDiv.style.display;
});

工作笔

这就是它的工作方式

$("#my_button").trigger('click');
setTimeout(test, 1000);
function test() { if (document.getElementById('my_div').style.display === 'block')
    alert('test');
}

但我不知道这是否是最佳选择

  相关解决方案