Javascript 按标记名获取元素[此]?
首先是一个简短的背景。所以我开始练习使用API。对于我现在正在使用的那个,我正在加载一个DIV,其中有很多链接,我必须给出一个新的用途。我设法阻止了默认的onclick函数。现在我需要保存单击的链接“innerHTML”属性Javascript 按标记名获取元素[此]?,javascript,jquery,this,getelementsbytagname,Javascript,Jquery,This,Getelementsbytagname,首先是一个简短的背景。所以我开始练习使用API。对于我现在正在使用的那个,我正在加载一个DIV,其中有很多链接,我必须给出一个新的用途。我设法阻止了默认的onclick函数。现在我需要保存单击的链接“innerHTML”属性 var nextPage = document.getElementsByTagName("a")[this].innerHTML; 有了这个,我试图锁定点击的链接,但没有成功。希望你明白我想做什么。如果是这样,我有没有办法解决这个问题 谢谢 编辑: this.inner
var nextPage = document.getElementsByTagName("a")[this].innerHTML;
有了这个,我试图锁定点击的链接,但没有成功。希望你明白我想做什么。如果是这样,我有没有办法解决这个问题
谢谢
编辑:
this.innerHTML
可以完成这项工作,如果我没有弄错的话
如果要在其中获取整个html,可以将onclick事件绑定到锚点本身,如果可能的话,还可以处理该事件
<a onclick="clicked(this)">Click me</a>
function clicked(element) {
// Do whatever needed
// element.innerHTML will change it's innerHTML
}
使用jQuery进行以下操作:
$('a').on('click', function(){
// this will run with every click, and 'this' will be your clicked item
console.log(this.innerHTML);
// although you probably want:
console.log($(this).attr('href'));
});
使用jQuery可以使代码更加清晰,并统一直接使用DOM api处理时可能遇到的跨浏览器兼容性问题。首先是
文档.getElementsByTagName(“a”)[this].innerHTML
将返回未定义的
,因为它将返回html节点的集合,并且它必须通过索引而不是此
由于您已经单击了,因此可以尝试以下代码:
function yourClickFunction(event) {
var target = event.target || event.srcElement;
var nextPage = target.innerHTML;
}
您可以使用一个公共类(
link
,在下面的示例中)附加click事件,然后只需使用this.innerHTML
返回您单击的链接的文本
希望这有帮助
var classname=document.getElementsByClassName(“链接”);
var clickFunction=function(){
//防止违约
if(event.preventDefault)event.preventDefault();
event.returnValue=false;
//获取文本
log(this.innerHTML);
}
对于(var i=0;i您可以向所有a
标记元素添加onclick
侦听器
var links=document.getElementsByTagName('a');
对于(var i=0,il=links.length;i
链接a
链接b
文档。getElementsByTagName(“a”)
为您提供一个HtmlanchoreElement数组。该数组的索引是从0到n的整数值
这个
在您的上下文中,我认为它是windows
对象(您的代码示例有点短,所以我不得不猜测一下)
使用window
作为期望整数的数组的索引当然不会给您带来任何结果。或者确切地说,使用undefined
有两种可能的方法来实现您的目标:
onclick处理器
函数hello(elem){
log(“您单击了“+elem.innerHTML+”))
}
您很接近,需要在[index]
中通过一个数字作为索引
测试0
是的,我知道。例如,如果我写[0]我将以第一个链接为目标。但是有多个链接具有不同的innerHTML属性,我只想保存单击的链接的innerHTML。是的,我同意@ZakariaAcharki。您是否尝试过这个。innerHTML
?向我们展示单击侦听器,以便我们知道这个是什么,并可以帮助您further@SuryaPurohit会给我e整个html页面。我不知道我是否可以这样做,因为html页面是由API加载的。是的,我在加载API时使用了jquery,我也尝试过解决jquery的问题,但没有解决。我尝试了secound console.log。但这给了我未定义的。您是否以与我的回答相同的方式绑定了“click”事件?为什么要使用循环绑定cl单击锚定???如果可以使用jquery,则不应使用循环。@SuryaPurohit这是真的。我刚刚找到了完整的JS答案。不需要粗鲁这也行!但我很难理解这行“var target=event.target | | event.srcelment;var nextPage=target.innerHTML;”.您介意解释一下吗?这意味着,获取触发事件的元素并将其存储在目标变量中
$('a').on('click', function(){
// this will run with every click, and 'this' will be your clicked item
console.log(this.innerHTML);
// although you probably want:
console.log($(this).attr('href'));
});
function yourClickFunction(event) {
var target = event.target || event.srcElement;
var nextPage = target.innerHTML;
}