标签: getelementsbyclassname

通过JavaScript按类更改值属性

我有以下HTML:

<input class="vertical-tabs-active-tab" type="hidden" value="account" name="tabs__active_tab">
Run Code Online (Sandbox Code Playgroud)

我需要JavaScript将"帐户"的值更改为"yolo".

我以为我能做到这一点:

document.getElementsByClassName('vertical-tabs-active-tab').setAttribute("value", "yolo");
Run Code Online (Sandbox Code Playgroud)

但是这会产生以下错误:

document.getElementsByClassName(...).setAttribute is not a function
Run Code Online (Sandbox Code Playgroud)

我无法在输入中添加"id",我必须根据类更改值.

html javascript setattribute getelementsbyclassname

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

getElementsByClassName在事件发生时更改元素的样式

我正在尝试使用

 onmouseover="document.getElementsByClassName().style.background='color'"
Run Code Online (Sandbox Code Playgroud)

将鼠标悬停在另一个页面元素上时,将具有给定类名的所有div的颜色更改为另一种颜色.

这是一个jsfiddle - 如果有人可以提供一些有用的指示,我会在哪里出错,那将是很好的,我确信这是一个非常明显的我缺少的东西.它与document.getElementById一起使用,但只改变了第一个div的颜色,而不是所有颜色.

谢谢 :)

javascript css onmouseover getelementsbyclassname

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

影子根getElementsByClassName

我正在使用LitElement创建自定义Web组件。我对此很陌生,因此决定尝试制作图像幻灯片。我 在修改W3Schools幻灯片以使其可用作LitElement时将其用作参考。问题是,当我尝试使用document.getElementByClassName时,我什么也没得到。由于我正在使用Shadow DOM,因此我对这个问题很熟悉,因此我将其更改为this.shadowRoot.getElementsByClassName。不幸的是,我被告知我要使用的不是函数。使用LitElement和shadow dom时如何按类名获取元素?如果您想查看我的组件的外观,下面是代码:

import { LitElement, html} from '@polymer/lit-element';

class ImageGalleryElement extends LitElement {

static get properties() { return {
    slideIndex: { type: Number },
  }};

constructor(){
    super();

    this.slideIndex=1;
    this.showSlides(this.slideIndex);
}

// Next/previous controls
plusSlides(n) {
    this.showSlides(this.slideIndex += n);
}

// Thumbnail image controls
currentSlide(n) {
    this.showSlides(this.slideIndex = n);
}

showSlides(n) {
    var i;
    console.dir(this.shadowRoot);
    var slides = this.shadowRoot.getElementsByClassName("mySlides");
    console.dir(slides);
    var dots = this.shadowRoot.getElementsByClassName("dot");
    if (n > slides.length) {this.slideIndex = 1} 
    if (n < 1) …
Run Code Online (Sandbox Code Playgroud)

javascript getelementsbyclassname shadow-dom lit-element

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

getElementsByClassName IE解析问题

我在解决如何解决IE中的getElementsByClassName问题时遇到了问题.我如何最好地实现罗伯特·尼曼(不能发布链接,因为我的代表只有1)解析到我的代码?或者jquery解决方案会更好吗?我的代码是

function showDesc(name) {
var e = document.getElementById(name);
//Get a list of elements that have a class name of service selected
var list = document.getElementsByClassName("description show");

//Loop through those items
for (var i = 0; i < list.length; ++i) { 
    //Reset all class names to description
    list[i].className = "description";
}

if (e.className == "description"){
    //Set the css class for the clicked element
    e.className += " show";
}
else{
    if (e.className == "description show"){
        return;
    }
}}
Run Code Online (Sandbox Code Playgroud)

我在此页面dev.msmnet.com/services/practice-management上使用它来显示/隐藏每项服务的描述(适用于Chrome和FF).任何提示将非常感谢.

javascript jquery getelementsbyclassname

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

在没有迭代的情况下获取具有一个类而不是另一个类

在下面的简单HTML中,我想获得class1但不包含class2的所有元素.

<li class="class1 class2"></li>
<li class="class1 class3"></li>
<li class="class1 class4"></li>
Run Code Online (Sandbox Code Playgroud)

通过使用getElementsByClassName('class1')我们可以获取所有元素,然后通过检查某个类是否存在来删除元素.

有没有更好的方法来做到这一点,没有迭代?

我发现这篇关于获取具有多个类的元素的有趣帖子,所以我敢问:有这样的事情:document.getElementsByClassName("class1 !class2")

PS:我不想使用jQuery.

javascript getelementsbyclassname

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

Javascript删除不删除所有元素

请参考小提琴 - http://jsfiddle.net/fkwwyvz8/

x = document.getElementsByClassName("buddy_blocks");
for(i=0;i<x.length;i++)
    x[i].remove();
Run Code Online (Sandbox Code Playgroud)

单击最后一个按钮,它必须删除所有其他按钮,但它不会并且只删除其中一些按钮,不知道为什么?有什么方法可以删除所有这些按钮吗?

javascript removeclass getelementsbyclassname

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

getElementsByClassName不起作用,但是getElementById呢?

我写了一个脚本,它的目标是停止显示图像一和二,同时允许图像3保持显示并移动到它们的位置.当我使用div Id而不是div Classes时,它工作正常,但我更喜欢使用div类,所以我可以像这样对元素进行分组:

 function myFunction() {
     var y = document.getElementsByClassName("firstimage secondimage");
     if (y.style.display === 'none') {
           y.style.display = 'block';
     } else {
           y.style.display = 'none';
     }
 }
Run Code Online (Sandbox Code Playgroud)

而不是这个(为了节省空间,我应该选择包含更多元素):

 function myFunction() {
     var x = document.getElementById("firstimage");
     if (x.style.display === 'none') {
          x.style.display = 'block';
     } else {
          x.style.display = 'none';
     }

     var y = document.getElementById("secondimage");
     if (y.style.display === 'none') {
          y.style.display = 'block';
     } else {
          y.style.display = 'none';
     }
}
Run Code Online (Sandbox Code Playgroud)

我认为只是将div id改为div类,#imagenumber改为.imagenumber(除了我上面描述的javascript的改变之外)会有效,但是当我这样做时脚本停止工作.我需要脚本以与我在下面粘贴的代码相同的方式运行,但是使用div类而不是div Id.请告诉我哪里出错了.

CSS:

#firstimage {
    width: 100px;
    height: 100px; …
Run Code Online (Sandbox Code Playgroud)

html javascript css function getelementsbyclassname

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

修改每个可能的DOM元素的原型

更新标题以更好地反映我正在尝试做的事情.

简而言之,不同的dom元素有不同的构造函数,它们似乎并不共享一个共同的原型.我正在寻找一种通过修改这些原型为每个DOM元素添加一个函数属性的方法,但我不知道如何找到它们.

例如,我可以这样做:

function enhanceDom (tagNames, methods) {
  var i=-1, tagName;
  while (tagName=tagNames[++i]) {
    var tag=document.createElement(tagName);
    if (!(tag && tag.constructor)) continue;
    for (var methodName in methods) {
      tag.constructor.prototype[methodName]=methods[methodName];
    }
  }
}

var thingsToEnhance = ['a','abbr','acronym','address'/* on and on... */];

enhance(thingsToEnhance, {
  doStuff : function(){
    /* ... */
  },
  doOtherStuff : function(){
    /* ... */
  } 
  /* ... */
});
Run Code Online (Sandbox Code Playgroud)

当然,我想在没有列出每个单独的html元素的情况下这样做.谁能想到更好的方法?

(原始问题如下)

目标-使getElementsByClassName任何一种浏览器的DOM节点上的工作.

它已经完成了(有点),但这是我的镜头.

我的问题是,有一个很好的方法来使用动态创建的元素吗?似乎HTML DOM元素没有共享getElementsByClassName可以添加的常见可预测原型......或者我错过了什么?

这是我到目前为止所做的(编辑 - 每次讨论更新).

(function(){

  var fn = 'getElementsByClassName'; …
Run Code Online (Sandbox Code Playgroud)

javascript cross-browser getelementsbyclassname

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

vba,getElementsByClassName,HTMLSource的双引号都消失了

我用vba抓取一些网站以获得乐趣,我使用VBA作为工具.我使用XMLHTTP和HTMLDocument(因为它比internetExplorer.Application更快).

Public Sub XMLhtmlDocumentHTMLSourceScraper()

    Dim XMLHTTPReq As Object
    Dim htmlDoc As HTMLDocument

    Dim postURL As String

    postURL = "http://foodffs.tumblr.com/archive/2015/11"

        Set XMLHTTPReq = New MSXML2.XMLHTTP

        With XMLHTTPReq
            .Open "GET", postURL, False
            .Send
        End With

        Set htmlDoc = New HTMLDocument
        With htmlDoc
            .body.innerHTML = XMLHTTPReq.responseText
        End With

        i = 0

        Set varTemp = htmlDoc.getElementsByClassName("post_glass post_micro_glass")

        For Each vr In varTemp
            ''''the next line is important to solve this issue *1
            Cells(1, 1) = vr.outerHTML
            Set varTemp2 = vr.getElementsByTagName("SPAN class=post_date")
            Cells(i + 1, …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba getelementsbyclassname

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

如何通过Javascript将图像添加到按钮?

我正在尝试将图像添加到我使用 Javascript 的按钮,但我似乎无法让它工作。我已经使用 HTML5 成功添加了图像,但是,根据我的需要,我需要通过 javascript 添加图像。

下面是我写的通过 HTML 添加图像的内容。

<button class="button" id="Ok"><img src="images/ok.png"></button>
Run Code Online (Sandbox Code Playgroud)

下面是我尝试通过 Javascript 添加图像但它似乎不起作用。

var buttons = document.getElementsByClassName("button");
for (var b = 0; b < buttons.length; b++) {
      buttons[b].src = "images\ok.png";   
  }
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么,任何帮助都会很好。谢谢。

html javascript resources image getelementsbyclassname

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