我有以下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",我必须根据类更改值.
我正在尝试使用
onmouseover="document.getElementsByClassName().style.background='color'"
Run Code Online (Sandbox Code Playgroud)
将鼠标悬停在另一个页面元素上时,将具有给定类名的所有div的颜色更改为另一种颜色.
这是一个jsfiddle - 如果有人可以提供一些有用的指示,我会在哪里出错,那将是很好的,我确信这是一个非常明显的我缺少的东西.它与document.getElementById一起使用,但只改变了第一个div的颜色,而不是所有颜色.
谢谢 :)
我正在使用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) 我在解决如何解决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).任何提示将非常感谢.
在下面的简单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.
请参考小提琴 - 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)
单击最后一个按钮,它必须删除所有其他按钮,但它不会并且只删除其中一些按钮,不知道为什么?有什么方法可以删除所有这些按钮吗?
我写了一个脚本,它的目标是停止显示图像一和二,同时允许图像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) 更新标题以更好地反映我正在尝试做的事情.
简而言之,不同的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) 我用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) 我正在尝试将图像添加到我使用 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)
我不确定我做错了什么,任何帮助都会很好。谢谢。
javascript ×9
html ×3
css ×2
excel ×1
excel-vba ×1
function ×1
image ×1
jquery ×1
lit-element ×1
onmouseover ×1
removeclass ×1
resources ×1
setattribute ×1
shadow-dom ×1
vba ×1