用javascript获取div类?

时间:2011-07-12 11:56:19

标签: javascript

我需要使用javascript从div-tag中找到/获取一个名为“group”的类。 之后,我想在我刚找到的div中插入一个html按钮(input = submit)。

如何使用javascript完成此操作?

到目前为止我已经尝试过了,但是得到并且错误:文件未被声明!

var myMessage = 'Mange tak';
var html_kode = '<input type="submit" onclick="clickedelm = this.value" id="qr_tak" tabindex="1" name="sbutton" title="(Alt + A)" accesskey="a" value="Auto Tak" class="button">';

if(myMessage) {
        var find_class = document.getElementsByClassName('group');
        if (find_class) {
            find_class.innerHTML += html_kode;
        }
    }

7 个答案:

答案 0 :(得分:5)

getElementsByClassName返回一个元素数组 所以你需要迭代find_class变量

var find_class = document.getElementsByClassName('group');
for (var i = 0, len = find_class.length; i < len; i++) {
   find_class[i].innerHTML = find_class[i].innerHTML + html_kode;
}

答案 1 :(得分:0)

“getElementsByClassName”返回set of elements,而不是单个元素。在你的if语句中,你真的想做这样的事情:

var len = find_class.length;
for (var ii = 0; ii < len; ii++) {
    find_class[ii].innerHTML = "new code";
}

答案 2 :(得分:0)

查看jQuery

var myMessage = 'Mange tak';
var html_kode = '<input type="submit" onclick="clickedelm = this.value" id="qr_tak" tabindex="1" name="sbutton" title="(Alt + A)" accesskey="a" value="Auto Tak" class="button">';

$(".find_class").html(html_kode);

答案 3 :(得分:0)

除了按类名搜索外,通常最好为您的元素分配一个ID,然后您可以通过其ID唯一地识别它:

<div id="mydiv">
...
</div>

然后你就可以了

var mydiv = document.getElementById('mydiv');
mydiv.innerHTML = mydif.innerHTML + html_kode;

答案 4 :(得分:0)

使用javascript库(即jQuery)可能是个好主意。

按类获取元素会更容易。标准的javascript无法按类获取内容(仅限id)。

如果你决定使用jQuery:

if(myMessage)
{
  var find_class = $('.group');
  if(find_class.length > 0)
  {
    find_class.each(function(){
     $(this).html(html_kode);
    });
  }
}

现在,如果您不想使用jQuery(Prototype,Dojo等),您可能想要搜索和ID而不是类 - 只需更改 转到ID,然后使用 getElementById

希望这有帮助

答案 5 :(得分:0)

getElementsByClassName是DOM的一个相对较新的版本,一些旧的浏览器可能不支持它。 IE8,我在看着你。

目前大多数浏览器都应该没问题,但是有足够多的人使用旧版本的IE,你实际上无法使用getElementsByClassName而没有实现某种后备。

最常见的后备解决方案是使用JQuery,但是有other solutions你可以尝试简单地实现这个函数而不需要其他JQuery库的开销。

答案 6 :(得分:0)

因为你说你在GreaseMonkey脚本中使用它:

您是否尝试过使用XPath?

这是我的剧本中的一个例子:

var XPath = function (path) {
    return document.evaluate(path, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0);
};

var yourOuterElement = XPath('/html/body/div[3]/form/table/tbody/tr/td/table');

var yourNewElement = document.createElement('input');

yourNewElement.setAttribute('type', 'submit');
yourNewElement.setAttribute('value', 'Send!');

yourOuterElement.appendChild(yourNewElement);

您可以通过FireBug获取yourOuterElement的XPath。