调用值+ style.display函数?

时间:2019-01-14 14:48:08

标签: javascript css function onclick

我正在努力使其正常工作,因为我不知道正确的格式。

我正在尝试根据用户在Javascript小程序中选择的值来显示CSS模式。

想法是返回.style.display =“ block”;

function onClick(event){
    <something>.style.display = "block"; 
}

其中包含一个以相交[0] .object.title格式保存的值

因此,例如,如果我选择了“曼哈顿”

alert(intersects[0].object.title)

我将正确显示字符串“ manhattan”。很好。

但是我无法获得manhattan.style.display =“ block”;返回并在函数内部工作?我试过了:

function onClick(event){
    intersects[0].object.title.style.display = "block"; 
}

也尝试过

function onClick(event){
    (intersects[0].object.title).style.display = "block"; 
}

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

这可能不是您要查找的直接内容,但无论如何它可能会有所帮助。要使其适合您的情况,只需更改按钮的按下即可检查所选值。

此路由而不是直接调整CSS,而是修改元素的classList,以删除或添加包含正确CSS的.hidden类。

// Loop through all modal buttons
document.querySelectorAll('.modal-button').forEach(function(element) {
  // Add a click event listener to all modal buttons 
  element.addEventListener('click', function() {
    // Toggle the target modal on click
    toggleModal(element.dataset.target);
  });
});

// Create the function to toggle the modals
function toggleModal(target) {
  // Find the target
  let targetElement = document.querySelector(target);
  
  // Check if the target is hidden
  if (targetElement.classList.contains('hidden')) {
    // If it is, show it
    targetElement.classList.remove('hidden');
  } else {
    // If it isn't, hide it
    targetElement.classList.add('hidden');
  }
}
.hidden {
  display: none;
}
<button data-target="#modal" class="modal-button">Toggle Modal</button>
<div id="modal" class="hidden">Hey there, I'm a modal!</div>

答案 1 :(得分:1)

从您的问题中我不确定您的难题的各个部分之间是如何关联的,如果您可以通过显示更多的HTML和Javascript代码来弄清这一点,那将很有帮助,但是我会抛几个同时提出您的想法。抱歉,如果我告诉您您已经知道的内容。

通常可以在其上设置“ style.display”的唯一对象是HTML元素。为了告诉Javascript您要修改哪个HTML元素,通常使用CSS选择器,例如“ document.getElementById('myDiv')”

听起来“曼哈顿”可能是您可以用来唯一标识要显示的HTML元素的一条信息。如果是这样,则可以通过四个简单的部分来显示正确的元素:

  • 将元素与特定字符串关联(例如,通过id)
  • 在运行时获取字符串(与警报相同)
  • 根据匹配的字符串选择元素
  • 显示所选元素

一起,看起来可能像这样:

<div id="manhattan"></div>
<script>
var identifier = intersects[0].object.title;
alert(identifier) //I'm assuming this alerts "manhattan"
var elementToShow = document.getElementById(identifier);
elementToShow.style.display = "block";
</script>

这是在正确的轨道上吗?如果没有,请提供更多详细信息,然后我会提出其他建议。

答案 2 :(得分:0)

给你div一些id,然后更改它:

<div id="test"></div>

document.getElementById("test").style["display"] = "block";
or
document.getElementById("test").style.display = "block";
or 
document.getElementById("test").style.setProperty('display', 'block');
or
document.getElementById("test").setAttribute('display', 'block');