18

有一段代码,但不能使用<id>标签。

那么,我怎么去<span> 1 2 3 4

<div id="test">
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
<div>
4

7 回答 7

33

试试这个

var div = document.getElementById("test");
var spans = div.getElementsByTagName("span");

for(i=0;i<spans.length;i++)
{
  alert(spans[i].innerHTML);
}
于 2012-08-21T09:30:07.433 回答
11
var test = document.getElementById( 'test' );

// To get the text only, you can use "textContent"
console.log( test.textContent ); // "1 2 3 4"

textContent是标准方式。innerText是用于旧版 IE 的属性。如果您想要尽可能跨浏览器的东西,请递归使用nodeValue.

于 2012-08-21T09:39:05.703 回答
7

没有 jQuery 标签,所以我假设是纯 JavaScript

var spanText = document.getElementById('targetSpanId').innerText;

是你需要的

但在你的情况下:

var spans = document.getElementById('test').getElementsByTagName('span');//returns node-list of spans
for (var i=0;i<spans.length;i++)
{
    console.log(spans[i].innerText);//logs 1 for i === 0, 2 for i === 1 etc
}

这是一个小提琴

于 2012-08-21T09:31:42.127 回答
2
<div id="test">
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
</div>
<div id="test2"></div>

<script type="text/javascript">
    var getDiv = document.getElementById('test');
    var getSpan = getDiv.getElementsByTagName('span');​​​
    var divDump = document.getElementById('test2');

    for (var i=0; i<getSpan.length; i++) {
        divDump.innerHTML = divDump.innerHTML + ' ' + getSpan[i].innerHTML;
    }
</script>

​</p>

于 2012-08-21T09:32:38.757 回答
1

纯javascript会是这样的

var children = document.getElementById('test').children;

如果您使用的是 jQuery,它将是这样的

$("#test").children()
于 2012-08-21T09:31:49.227 回答
1

您可以使用 querySelectorAll 获取所有 span 元素,然后使用新的 ES2015 (ES6) 扩展运算符将 querySelectorAll 返回的 StaticNodeList 转换为跨度数组,然后使用 map 运算符获取项目列表。

请参见下面的示例

([...document.querySelectorAll('#test span')]).map(x => console.log(x.innerHTML))
<div id="test">
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
<div>

于 2016-07-03T16:32:04.170 回答
0

您需要更改您的代码如下: -

<html>
<body>

<span id="span_Id">Click the button to display the content.</span>

<button onclick="displayDate()">Click Me</button>

<script>
function displayDate() {
   var span_Text = document.getElementById("span_Id").innerText;
   alert (span_Text);
}
</script>
</body>
</html>

完成此操作后,您将在警报中获得标签值。

于 2017-01-05T17:59:45.403 回答