获取具有相同类的div的所有内部文本

时间:2014-02-17 23:05:26

标签: javascript

有没有办法可以使用class =“company Name”将所有div的所有内部html都包含在内。

请指导我正确的方向。

修改

我可以在Chrome控制台中使用它来从网页中获取信息吗?

5 个答案:

答案 0 :(得分:5)

请不要使用jquery。使用普通的“javascript”非常容易。

var x = document.querySelectorAll("[class='company Name']");
for (var i=0;i<x.length;i++) {
    //grab x[i].innerHTML (or textContent or innerText)
}

答案 1 :(得分:2)

JSFIDDLE

选项1 - 单行

var innerHTMLs = Array.prototype.slice.call( document.getElementsByClassName( 'company_name' ) ).map( function( x ){ return x.innerHTML } );

console.log( innerHTMLs );

选项2 - 稍微冗长。

var elements = document.getElementsByClassName( 'company_name' ),
    innerHTMLs = [];
for ( var i = 0; i < elements.length; ++i )
    innerHTMLs.push( elements[i].innerHTML );
console.log( innerHTMLs );

选项3 - 也适用于旧浏览器(IE8及更早版本)。

var innerHTMLs = [],
    elements   = document.getElementsByTagName( '*' ),
    classToMatch = 'bob';

for ( var i = 0; i < elements.length; ++i )
{
    if ( ( ' ' + elements[i].className + ' ' ).indexOf( ' ' + classToMatch + ' ' ) != -1 )
        innerHTMLs.push( elements[i].innerHTML );
}

console.log( innerHTMLs );

答案 2 :(得分:1)

你可能想从这开始:

var elements = document.getElementsByClassName('company name');

然后元素将是所有div的数组。 然后使用'for in'迭代它们并为每个输出内部html。也许是这样的:

var allInnerHTML = '';

for (index in elements)
{
    var element = elements[index];

    allInnerHTML = allInnerHTML + element.innerHTML;
}

不确定你想要做什么,但希望这会有所帮助。

答案 3 :(得分:1)

您可以使用以下方法从包含class="company Name"的元素中获取innerText数组:

Array.from(document.getElementsByClassName('company Name'), e => e.innerText)

答案 4 :(得分:0)

您可以使用jQuery将所有字符串存储在数组中:

var strings = [];

$('.yourclass').each(function(){
   strings.push( $(this).text() );
});