如何在JavaScript中不使用id获取元素的值
How to get value of elements without using IDs in JavaScript
假设我有以下代码:
<div class="post">
<h2 itemprop="name">
<a href="http://www.example.com">The Post Title</a>
</h2>
<div class="details">
<span>
<em class="date">Jul 17, 2014 </em>
</span>
<span>
Category:
<a href="/category/staff-profile/">Staff Profile</a>
</span>
</div>
我怎么可能得到"Post Title"answers"Staff Profile"的值使用JavaScript而不改变页面上的HTML ?例如,我不能使用getElementbyID。如果有必要,我可以使用jQuery,但如果可能的话,我宁愿不使用。
您可以使用返回数组的getElementsByTagName
获得这些值
document.getElementsByTagName("a")[0].innerHTML // returns The Post Title
document.getElementsByTagName("a")[1].innerHTML // returns Staff Profile
如果这些链接是第一个链接,您可以使用索引0和1,否则您应该寻找正确的索引
更新另一种简单的方法是在div中选择这些链接,类为post
var links = document.getElementsByClassName("post")[index].getElementsByTagName("a");
links[0].innerHTML; // returns The Post Title
links[1].innerHTML; // returns Staff Profile
如果类为post
的div的索引不改变
对于基于jQuery的表达式,您可以使用以下命令:
$('a').map(function() {
return [this.href, this.textContent];
}).get();
应该返回:
[ [ 'http://www.example.com', 'The Post Title' ],
[ 'http://sitename/category/staff-profile/', 'Staff Profile' ] ]
如果您特别想要原始的相对url而不是规范化的完整url,请使用this.getAttribute(href)
代替this.href
对于纯(ES5)等价物:
[].map.call(document.getElementsByTagName('a'), function (el) {
return [el.href, el.textContent];
});
不支持W3C标准.textContent
属性的旧浏览器可能需要使用.innerText
属性,例如:
return [el.href, el.textContent || el.innerText];
你可以这样做:
var posts = document.querySelector('.post');
for (var i = 0; i < posts.length; i++) {
var links = document.querySelectorAll('a');
var title = links[0].innerText || links[0].textContent;
var profile = links[1].innerText || links[1].textContent;
}
如果您使用的是更现代的浏览器,您可以使用document.querySelectorAll(),它采用CSS样式选择器语法。
var aList = document.querySelectorAll('.post a');
for (var i = 0; i < aList.length; ++i) {
alert(aList[i].innerHTML);
}
JSFiddle
我用了'。在你的页面上放一个'而不是'a',因为我认为你的页面中可能有其他你不需要的'a'标签。
相关文章:
- Html地图对象-点击地图获取id的一部分
- 通过localStorage中的密钥获取ID
- 如何从值的Angular下拉列表中获取ID
- 如何从对象中获取id
- 使用jQuery来foreach iframe-src,并通过函数获取ID和操作
- 如何在使用node.js时从URL中获取Id
- 通过单击链接(兄弟姐妹?)从无线电输入中获取id
- 如何从Url客户端获取Id
- jQuery无法从下拉列表中获取id
- 可以'无法从列表项中获取id
- 从子输入中获取id值,并在更改时将其推送到Javascript中的数组中
- Javascript:如何从不同的ID中获取ID和name属性
- 如何获取id并在ror中基于该id显示下一个字段
- 这个_Meteor js中的Iron控制器无法访问id.如何获取id
- 使用 jQuery 从 HTML 获取 id,给出意想不到的结果
- 如何在select标记上使用javascript获取id名称
- 如何从包含HTML代码和许多UL标签及其ID的JavaScript变量A中获取
- ID
- 如何在创建保存新模型时获取id
- 对话框,数据选择器获取id
- 如何从以某个单词(regexp)结尾的字符串中获取id