相关疑难解决方法(0)

JavaScript问题:getElementsByName()对我不起作用

只是尝试提醒在电话字段中输入的值,但它提醒未定义:

<script type="text/javascript">

function foo() {
   alert(document.getElementsByName("phone").value);
   return false;
}

</script>

<form action="foo.php" method="post" onsubmit="return foo()">
    <label>Name:</label>
    <input type="text" name="name" />
    <label>Phone:</label>
    <input type="text" name="phone" />
    <label>Email:</label>
    <input type="text" name="email" />
    <label>Message:</label>
    <textarea name="message"></textarea>
    <input type="submit" value="Submit" name="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

如何使其工作?另外,我读到所有主要浏览器都支持getElementsByName,对吗?

javascript

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

getElementsByClassName不是Firefox中的函数

我在GoodReads上的阅读书架是已出版和未出版书籍的混合,很难找到可供阅读的内容.我想我可以把一个GreaseMonkey脚本放在一起,这个脚本会改变尚未发布的书籍条目的背景.

这是我到目前为止所做的:

// ==UserScript==
// @name        Unpublished Lowlighter
// @description Makes the background of books not yet published on the Goodreads to-read shelf grey.
// @include     http://www.goodreads.com/*
// ==/UserScript==

function dateColor() {
    var books = document.getElementsByClassName('bookalike review');
    for (var book in books) {
        var dateString = book
                        .getElementsByClassName('field date_pub')
                        .getElementsByClassName('value')
                        .textContent;
        var date = new Date(dateString);
        var today = new Date();
        if (date > today) {
            book.style.backgroundColor('Lightgrey');
        }
    }
}

dateColor();
Run Code Online (Sandbox Code Playgroud)

问题是它不起作用.当我尝试在暂存器中运行脚本时,它给出了错误:Exception: book.getElementsByClassName is not a function

我认为Firefox支持getElementsByClassName …

javascript firefox greasemonkey

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

与classList.add和getElementsByClassName一起苦苦挣扎

我正在尝试为一些具有特定类(input-fieldset)的元素添加一个额外的类.

<fieldset id="pay" class="input-fieldset"></fieldset>
<fieldset id="address" class="input-fieldset"></fieldset>
Run Code Online (Sandbox Code Playgroud)

所以我做了一些搜索,发现了这个:

var element = document.getElementsByClassName('input-fieldset');
element.classList.add(' input-fieldset-awesome');
Run Code Online (Sandbox Code Playgroud)

我正在尝试添加类input-fieldset-awesome.

但它不起作用,我收到错误:

未捕获的TypeError:无法读取未定义的属性'add'(匿名函数)

我究竟做错了什么?

javascript getelementsbyclassname

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

使用javascript将文本从div复制到剪贴板

我正在尝试使用将文本从下一个div复制到剪贴板Javascript。下面是我当前的代码:

HTML:

<div class="hl7MsgBox">
    <span class="boxspan">1</span>
    <br>
    <span class="boxspan">2</span>
    <br>
    <span class="boxspan">3</span>
    <br>
    <span class="boxspan">4</span>
    <br>
    <span class="boxspan">5</span>
    <br>
    <span class="boxspan">6</span>
    <br>
    <span class="boxspan">7</span>
    <br>
    <span class="boxspan">8</span>
</div>
Run Code Online (Sandbox Code Playgroud)

Javascript:

$(".btnFileCopy").click(function () {
    var copyText = document.getElementsByClassName("hl7MsgBox");
    copyText.select();
    document.execCommand("copy");
});
Run Code Online (Sandbox Code Playgroud)

我期望将新输出粘贴到中时得到notepad

1
2
3
4
5
6
7
8
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,它无法正常工作并抛出下一条错误消息:

未捕获的TypeError:copyText.select不是函数...

有谁知道我该如何解决这个问题?

javascript clipboard

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

禁用每个未选中的复选框

我有一堆表单,每个表单都有一个复选框,当满足条件时,我想禁用每个未选中的复选框。

我试过这样做,但没有运气

if (updateShowcasedProducts.length == 12) {                                    
 document.querySelectorAll('input[type="checkbox"]:not(:checked)').disabled = true;
    }
Run Code Online (Sandbox Code Playgroud)

我最好只使用 vanilla javascript。

html javascript forms dom input

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

更改 Class 为 X 的元素的 ID

我正在尝试通过 Ajax 更改 div 的 ID。
因为 ID 有一个动态值,所以我在 div 中添加了一个类。

我的php代码:

    echo '<div id="pagemenu">
            <ul id="tabpanel">';
$tel = 0;
while($totaalklanten > -4)
{
    $tel++;
    echo '<li><a href="#'.$tel.'" name="'.$tel.'" onclick="listklant(\'klant.php\',this.name)">'.$tel.'</a></li>';
    $totaalklanten = $totaalklanten - 5;
}
echo '</ul>';
echo '<div class="changeme" id="default">';
//Lots of query of php stuff here to execute
echo '</div>
Run Code Online (Sandbox Code Playgroud)

'changeme' 类的 div 是受害者。

到目前为止我的 Ajax 代码:

xmlhttp = new XMLHttpRequest();

function listklant(serverPage, pagenum)
{
    xmlhttp.open("GET", serverPage);



    document.getElementsByClassName('changeme').id = pagenum;
    alert(document.getElementById(pagenum));
    alert(document.getElementsByClassName('changeme').id);


    xmlhttp.onreadystatechange = function()
    {
        if …
Run Code Online (Sandbox Code Playgroud)

javascript dom

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

getElementsByClassName问题

我目前遇到了getElementsByClassName属性的问题.我有一个显示和隐藏功能,当你将鼠标悬停在产品上时显示一个按钮点击这里我已经使用getElementById属性启用了这个功能,但是由于我想要使用类重复这个功能是更好的做法.下面的代码是否使用ClassName JS函数解决此问题的正确方法?

另外我一直在阅读IE8中不支持getElementsByClassName这是真的,有没有办法解决这个问题?

  <script>    
  function show(viewProductBtn){
document.getElementByClassName(viewProductBtn).style.visibility = "visible";
}

function hide(viewProductBtn) {
document.getElementByClassName(viewProductBtn).style.visibility = "hidden";
}
</script>

<!--HTML-->
<div class="product-shot-bg" onMouseOver="show('viewProductBtn')"      onMouseOut="hide('viewProductBtn')">
        <a href="#" class="viewProductBtn"></a>
Run Code Online (Sandbox Code Playgroud)

目前我已将我的开发站点切换回getByID以演示过渡应该如何工作..

html javascript

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

使用 getelementbyclass 删除属性

在这里,我尝试调用类并获取变量中的值以删除其属性样式并再次设置样式,但它显示这样的错误

未捕获的类型错误:cls.removeAttribute 不是函数。

cls = document.getElementsByClassName("ps-scrollbar-x-rail");
cls1 = document.getElementsByClassName("ps-scrollbar-x");
cls2 = document.getElementsByClassName("ps-scrollbar-y-rail");
//alert(cls);
//alert(cls1);
//alert(cls2);
//console.log(cls);
//console.log(cls1);
//console.log(cls2);

cls.removeAttribute("style"); 
cls1.removeAttribute("style");
cls2.removeAttribute("style");

cls.setAttribute("style","width: 600px; left: 258px; bottom: 1px;"); 
cls1.setAttribute("style","left: 143px; width: 333px;");
cls2.setAttribute("style","top: 0px; right: -255px;");
Run Code Online (Sandbox Code Playgroud)

Onclick调用这个方法。这显示错误。

javascript jquery

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

不能将querySelectorAll用于单个元素?

据我所知,在正常情况下,您可以使用querySelector选择单个元素,并使用querySelectorAll来选择多个元素.但是,我很惊讶地发现querySelectorAll不适用于单个元素.我希望它可以与一个或多个一起工作.我找不到任何说它不应该只用一个的东西所以我在这里问这是否正常并且根据规格?

HTML:

<div class="top container">
  <div class="pod" draggable="true">big</div>
  <div class="pod" draggable="true">small</div>
  <div class="pod" draggable="true">happy</div>
  <div class="pod" draggable="true">rich</div>
  <div class="pod" draggable="true">fast</div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

function dragStart(e) {
  console.log("drag started");
  e.target.style.opacity = "0.5";
}
Run Code Online (Sandbox Code Playgroud)

适用于此(调用dragStart函数):

var topPods = document.querySelector(".top");
topPods.addEventListener("dragstart", dragStart);
Run Code Online (Sandbox Code Playgroud)

但不适用于此(未调用dragStart函数):

var topPods = document.querySelectorAll(".top");
topPods.addEventListener("dragstart", dragStart);
Run Code Online (Sandbox Code Playgroud)

html javascript selectors-api

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

getElementsByClassName不是函数javascript

现在我知道它可能看似重复,但事实并非如此.我阅读了这个标题的所有其他帖子,但找不到答案.我有:

<ul>
  <a id="A" class="tablink">A</a>
  <a id="B" class=tablink">B</a>
...
</ul>
Run Code Online (Sandbox Code Playgroud)

我想要上面元素的id,是来自另一个无序列表的另一个列表元素的href.

<ul>
  <a id="1" class="subjects" >1</a>
  <a id="2" class="subjects">2</a>
</ul>
Run Code Online (Sandbox Code Playgroud)

我已经有了这个代码

<script type="text/javascript">

$(".tablink").on("click", function(){
  var char = this.getAttribute("id");
  var link = document.getElementsByClassName("subjects").getAttribute("id");
  document.getElementsByClassName("subjects").href = char + link

  });
</script>
Run Code Online (Sandbox Code Playgroud)

但它显示标题中的错误.如果我设置它是有效的:document.getElementById("subjects")我还必须将主题更改为id而不是课堂.所以它只适用于一个元素,但我有更多的元素,所以我假设我必须做一些for循环?编辑:使用jQuery完成的COul,没有for循环?如果有,怎么样?

javascript jquery dom

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