CSS类选择器中允许使用哪些字符/符号?我知道以下字符无效,但哪些字符有效?
~ ! @ $ % ^ & * ( ) + = , . / ' ; : " ? > < [ ] \ { } | ` #
如何找到被点击的按钮的ID?
<button id="1" onClick="reply_click()"></button>
<button id="2" onClick="reply_click()"></button>
<button id="3" onClick="reply_click()"></button>
function reply_click()
{
}
如何在纯JavaScript中找到最接近具有特定类的树的元素的祖先?例如,在这样的树中:
<div class="far ancestor">
    <div class="near ancestor">
        <p>Where am I?</p>
    </div>
</div>
然后我想要,div.near.ancestor如果我尝试这个p并搜索ancestor.
我已经看到了将JavaScript代码放入<a>标记的以下方法:
function DoSomething() { ... return false; }
<a href="javascript:;" onClick="return DoSomething();">link</a><a href="javascript:DoSomething();">link</a><a href="javascript:void(0);" onClick="return DoSomething();">link</a><a href="#" onClick="return DoSomething();">link</a>我理解尝试放置有效URL而不仅仅是JavaScript代码的想法,以防用户没有启用JavaScript.但是为了讨论的目的,我需要假设启用了JavaScript(没有它就无法登录).
我个人喜欢选项2,因为它可以让你看到将要运行的内容 - 在调试传递给函数的参数时尤其有用.我已经使用了很多,并没有发现浏览器问题.
我读过人们推荐4,因为它给了用户一个真实的链接,但实际上,#不是"真实的".它绝对不会在哪里.
当您知道用户启用了JavaScript时,是否有一个不支持或非常糟糕?
如果元素有多个类,那么它将与常规属性值检查不匹配,所以我正在寻找检查对象是否在元素的className属性中具有特定类的最佳方法.
// element's classname is 'hello world helloworld'
var element = document.getElementById('element');
// this obviously fails
if(element.className == 'hello'){ ... }
// this is not good if the className is just 'helloworld' because it will match
if(element.className.indexOf('hello') != -1){ ... }  
那么最好的方法是什么?
只是纯粹的JavaScript请
说我有这个html元素
<div id="hello" class="hello option john">Hello</div>
<div id="hello" class="hello john">Hello</div>
.现在我通过它的Id选择带有javascript的元素.if($('hello').hasClass('option')){//do stuff}除了简单的Javascript之外,我将如何做(jQuery)等效的?
在下面的简单HTML中,我想获得class1但不包含class2的所有元素.
<li class="class1 class2"></li>
<li class="class1 class3"></li>
<li class="class1 class4"></li>
通过使用getElementsByClassName('class1')我们可以获取所有元素,然后通过检查某个类是否存在来删除元素.
有没有更好的方法来做到这一点,没有迭代?
我发现这篇关于获取具有多个类的元素的有趣帖子,所以我敢问:有这样的事情:document.getElementsByClassName("class1 !class2")?
PS:我不想使用jQuery.
我现在拥有的是
function setMenuCurrentTo(variable)
{
document.getElementById("game_" + variable).style.display = "block";
var elems = document.getElementsByClassName("current_nav");
for (var i=elems.length; i--;) {
elems[i].style.display = "none";
elems[i].className = 'none';
}
document.getElementById("game_" + variable).className="current_nav";
}
}
因此,当我单击带有特定元素(变量)的标签时,它会添加一个内容并“隐藏”另一个内容。但是有一个错误,当我在同一个按钮上单击两次时,内容会消失并且我不再有内容。
所以我尝试了这个代码:
function setMenuCurrentTo(variable)
{
document.getElementById("game_" + variable).style.display = "block";
if (getElementById("game_" + variable).hasClass("current_nav")) {
}
else {
var elems = document.getElementsByClassName("current_nav");
for (var i=elems.length; i--;) {
elems[i].style.display = "none";
elems[i].className = 'none';
}
document.getElementById("game_" + variable).className="current_nav";
}
这
if (getElementById("game_" + variable).hasClass("current_nav")) {} else {
使代码不起作用,内容出现但没有其他“隐藏”。我的代码有什么问题?谢谢,我对 JavaScript 很陌生,昨天我得到了原始代码的帮助。再次感谢你。
编辑: …
尝试在单击div时找到显示console.log的方法.我正在尝试做一个简单的游戏,如果你点击右边的框,你会收到一条你赢了的消息.
截至目前,我正在努力解决我的代码问题,特别是这一部分:
function winningBox(){
	if (boxes.hasClass){
		console.log('you win');
	} else {
		console.log('you lose');
	}
}
winningBox();我如何让它工作?如果点击的框具有"获胜"类,则该消息应该是console.log获胜.请看一下.顺便说一下,我需要在Vanilla JavaScript上完成这个
//cup game
//add three cups to screen
//select li element
var button;
var boxes = document.getElementsByTagName('li');
var array = [];
console.log('working');
document.addEventListener('DOMContentLoaded', init);
function init() {
  document.addEventListener('click', winningBox);
  //shuffle li elements, and ad an id
  function test(boxes) {
    var randomBox = boxes[Math.floor(Math.random() * boxes.length)];
    array.push(randomBox);
    console.log('randombox:', randomBox);
    randomBox.classList.add('winning');
  }
  console.log(test(boxes));
  //user can click on a cup to see if correct
  function winningBox() …在一个非常凌乱的页面上,我有一个 div,我试图找到一种方法来计算不在我的 div 中的所有元素的(总)高度。
无论 div 的位置、大小和内容如何,我都需要计算它。我曾尝试offsetHeight,clientHeight和window.getComputedStyle.getPropertyValue('height')我已经发现的offsetHeight提供了最可靠的结果(据我所知只有保证金缺失)。
我试图用一种非动态的方式来计算所有其他元素的高度,但我的误差幅度超过了 120 像素(我使用<body>的高度作为目标)。
编辑:
我知道如何获得一个元素的渲染高度,我现在想要渲染高度关闭除 one 之外的所有元素。
代码:
var heights = {
'body'   : { 'element': document.getElementsByTagName( 'body' )[ 0 ], 'computed': window.getComputedStyle( document.getElementsByTagName( 'body' )[ 0 ], null ) },
'header' : { 'element': document.getElementById( 'headertxtContainer' ), 'computed': window.getComputedStyle( document.getElementById( 'headertxtContainer' ), null ) },
'content': { 'element': document.getElementById( 'body_div' ), 'computed': window.getComputedStyle( document.getElementById( 'body_div' ), null ) …我想在加载时隐藏一个表,并根据类名显示其子项之一.可以用CSS做到吗?
我试图这样做,但我认为它继承自display:none;
是否可以在语句中使用 JavaScriptdocument.getElementsByClassName变量?ifevent.target
我想实现这样的目标:
var signInModals = document.getElementsByClassName("signInModal");
if (event.target == signInModals) {
        alert("It worked!");
}
谢谢你!
javascript ×12
html ×6
css ×3
dom ×2
if-statement ×2
class ×1
css-tables ×1
href ×1
visibility ×1