相关疑难解决方法(0)

getElementsByTagName不是函数

我真的很挣扎.我想要更改img标记的src属性并获取错误消息getElementsByTagName不是函数.以下是我的测试标记

<html>
<body>
<div class="logo">
<img src="/a.jpg">
</div>
<script>
document.getElementsByClassName('logo').getElementsByTagName('img')[0].src ="/b.jpg";
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏.

html javascript

6
推荐指数
1
解决办法
2万
查看次数

Html dom为所有元素添加类

我正在尝试使用 html dom 一次向所有元素添加类。// 没有jquery

这是我尝试过的:

document.getElementsByTagName("*").classList.add('addedclassname');
Run Code Online (Sandbox Code Playgroud)

我想我无法选择(获取)所有元素。因为这,

document.getElementById("id").classList.add('addedclassname');
Run Code Online (Sandbox Code Playgroud)

正在工作。

html javascript

6
推荐指数
1
解决办法
8853
查看次数

getElementsByClassName产生错误"undefined"

textboxes和班上有几个人output.我希望能够打印他们的价值观如在一个普通的HTML列表divID combined.现在,我有以下代码:

function doCombine() {
    document.getElementById('combined').innerHTML =
    document.getElementsByClassName('output').value + ",";  
}
Run Code Online (Sandbox Code Playgroud)

然而,当我运行该函数时,我收到错误消息undefined,.当我添加[0]之前.value,它可以工作,但只textbox显示第一个的值.我读到了[i]会显示所有值的地方,但这似乎不起作用.

我究竟做错了什么?

javascript

5
推荐指数
2
解决办法
3万
查看次数

使用vanilla javascript从DOM中删除元素

我有一个表单,并尝试在按钮单击时删除它.

<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
    <button onclick="remove()">remove</button>

    <form action="test.html" class="contactForm" dir="ltr" enctype="multipart/form-data" method="post">
        <ol>
            <li class="csc-form-9 csc-form-element csc-form-element-textline">
                <label for="field-9">Vorname</label>
                <input class="inputFormText" id="field-9" name="tx_form[firstname]" type="text"/>
            </li>
            <li class="csc-form-10 csc-form-element csc-form-element-textline">
                <label for="field-10">Nachname</label>
                <input class="inputFormText" id="field-10" name="tx_form[lastname]" type="text"/>
            </li>

        </ol>
    </form>

    <script>
    function remove()
    {
        var x = document.getElementsByClassName("contactForm");

        console.log(x);

        x.remove();
    }
    </script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

根据这篇文章,它应该可以通过调用remove()DOM元素来实现.但是,我得到:

(index):30 Uncaught TypeError:x.remove不是HTMLButtonElement.onclick上的删除函数((索引):30):(索引):7)

html javascript dom

5
推荐指数
1
解决办法
5512
查看次数

为什么 querySelector 仅选择第一个元素以及如何解决此问题?

我正在尝试制作一个日历,当我单击其中一个日期时,会弹出一个您必须填写的表格。我无法使其正常工作。我唯一能上班的是第一个“1”约会。其他一切都不起作用,我不知道如何解决它。我尝试重写代码并切换到 id,但没有任何效果。任何帮助表示赞赏。谢谢!

document.querySelector(".weekdays").addEventListener("click",
  function() {
    document.querySelector(".bg-modal").style.display = "flex";
  });
Run Code Online (Sandbox Code Playgroud)
.bg-modal {
  width: 100%;
  background-color: rgba(0, 0, 0, .7);
  height: 100vh;
  position: fixed;
  z-index: 20;
  display: none;
}

.modal-content {
  width: 30%;
  height: 50%;
  position: absolute;
  top: 50%;
  border-radius: 30px;
  background: linear-gradient(to bottom, #2ad6ff, #0069ff);
}

.modal-heading {
  width: 70%;
  height: 50px;
  position: absolute;
  border-radius: 50px;
  background-color: #2ad6ff;
  left: 50%;
  transform: translate(-50%);
  top: -6%;
  font-size: 32px;
  text-align: center;
  color: white;
}

.modal-close {
  position: absolute;
  transform: rotate(45deg);
  font-size: 42px;
  color: white; …
Run Code Online (Sandbox Code Playgroud)

html javascript css

5
推荐指数
1
解决办法
1万
查看次数

如何使用 getElementsByClassName 获取子元素?

我有简单的 javascript 来使用 getElementsByClassName 获取它的子元素,但它不起作用:

var parent = document.getElementsByClassName('parent');
var child = parent.getElementsByClassName('child');
child.style.color='red';
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多并搜索来获取它,但我找到了一些带有 for 循环的答案,但我想在没有循环的情况下完成它。我怎样才能做到这一点?

javascript

4
推荐指数
1
解决办法
1万
查看次数

使用 javascript 在 true 和 false 之间切换 aria-expanded

我试图在单击按钮时在 true 和 false 之间切换 aria 标签。我已经尝试了几种实现,但似乎完全没有任何作用。以下是我当前正在使用的成功切换课程的内容。我如何扩展它以在 true 和 false 之间切换 aria-expanded 值?别介意,我正在从 jQuery 过渡到 ES6。

const theTrigger = document.getElementById('mobile-form-control');
const theForm = document.querySelectorAll('.l-header__mobile-form');

theTrigger.onclick = function () {
  for (const x of theForm) {
    x.classList.toggle('show');
  }
};

Run Code Online (Sandbox Code Playgroud)

javascript accessibility wai-aria

4
推荐指数
2
解决办法
7723
查看次数

通过DOM中的前置元素进行无限循环

不寻找使用框架XXX答案

这个问题不是为了通过框架找到实际的解决方案.回答使用框架XXX,或者这在框架XXX中是如此简单,或者为什么不使用这个框架XXX ??? 不回答这个问题.

我有一个函数意味着在页面加载后运行:performShim.此函数迭代DOM中作为span标记的所有元素,检查它们是否具有className,shim如果是,则调用shim传递给匹配元素的引用.

我的目标是在前面加上另一个span包含一个iframe以传递的元素shim.

到目前为止我写的代码,我能够附加到元素的父级就好了.但是,如果我注释掉该append行并改为尝试前置行,则浏览器可能会挂起无限循环.

对我来说,为什么会出现这种情况并不容易.

function shim( element ) {      
    var iframe = document.createElement('iframe');
    iframe.setAttribute( 'frameborder', '0' );
    iframe.setAttribute( 'scrolling', 'no' );
    iframe.setAttribute( 'align', 'bottom' );
    iframe.setAttribute( 'marginheight', '0' );
    iframe.setAttribute( 'marginwidth', '0' );
    iframe.setAttribute( 'src', "javascript:'';" ); 

    var span = document.createElement('span');
    span.appendChild(iframe);


    //element.parentNode.insertBefore(span,element); //causes infinite loop?

    element.parentNode.appendChild(span); //this line …
Run Code Online (Sandbox Code Playgroud)

javascript dom infinite-loop internet-explorer-6

3
推荐指数
1
解决办法
884
查看次数

getElementsByClassName()不起作用

以下代码是按字母顺序对表单列表选项进行排序,但'getElementsByClassName()'不起作用,我无法弄清楚原因.

我正在使用最新的jQuery.

window.onload=function(){
    function sortlist() {
        var cl = document.getElementsByClassName('car_options');
        var clTexts = new Array();

        for(i = 1; i < cl.length; i++) {
            clTexts[i-1] =
                cl.options[i].text.toUpperCase() + "," +
                cl.options[i].text + "," +
                cl.options[i].value;
    }   
    clTexts.sort();

    for(i = 1; i < cl.length; i++) {
        var parts = clTexts[i-1].split(',');
        cl.options[i].text = parts[1];
        cl.options[i].value = parts[2];
    }
    sortlist();
}
Run Code Online (Sandbox Code Playgroud)

在身体部分

     <form action="" method="get">

        <p><label for="car_make"></label>
          <select id="car_make"  class="car_options" name="car_make"> 

            <option value="">By Make</option>
            <option value="Vauxhall">Vauxhall</option>
            <option value="BMW">BMW</option>
            <option value="Toyota">Toyota</option>
            <option value="Lexus">Lexus</option>
            <option value="Audi">Audi</option> …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

3
推荐指数
1
解决办法
2万
查看次数

当只有一个要选择的类时,为什么getElementsByClassName需要[0]?

我尝试使用类let modal = document.getElementsByClassName('modal')来选择元素modal.它仅在使用节点选择选择第一个结果后才起作用:let modal = document.getElementsByClassName('modal')[0].我知道该方法Document.getElementsByClassName()返回具有所有给定类名的子元素,但是我的HTML中只有一个元素与该类有关.我在浏览器的开发工具中通过使用var x = document.getElementsByClassName('modal').length并将x的值记录到控制台(它按预期返回1)来确认这一点.有人可以解释为什么在这种情况下需要选择节点吗?

如果它是我的代码中的东西,这是我的CodePen.

编辑:我的问题与标记为重复的问题不同.在那个问题中,他们要求方法之间的区别,而不是返回单个元素和返回类似数组的元素集合.我已经知道getElementsByClassName返回一个类似数组的元素集合,而其他方法返回一个元素.我的问题是为什么你需要在返回类的所有元素的情况下指定索引但是只有一个元素具有类(因此返回一个项目,正确的项目).

javascript

3
推荐指数
1
解决办法
576
查看次数