Javascript 如何用原生JS编写
我有这个HTML:Javascript 如何用原生JS编写,javascript,jquery,Javascript,Jquery,我有这个HTML:table>tr*3>td*5。某些标记具有类'Some' 因此jQuery代码是: $('td').click(function(){ if($(this).hasClass('some')) alert('!'); }); 如何用本机JavaScript编写此代码 我试过这个,但这个不行: var target = document.getElementsByTagName('td'); target.addEventListener('click', f
table>tr*3>td*5
。某些标记
具有类'Some'
因此jQuery代码是:
$('td').click(function(){
if($(this).hasClass('some'))
alert('!');
});
如何用本机JavaScript编写此代码
我试过这个,但这个不行:
var target = document.getElementsByTagName('td');
target.addEventListener('click', function(){
if ( target.hasAttributes('class', 'some') )
alert('!');
});
也许,像这样的事情应该可以:
var elements = Array.prototype.slice.call(document.getElementsByTagName('td'));
elements.forEach(function (element) {
element.addEventListener('click', function () {
if (element.classList.indexOf('some') >= 0) {
alert('!');
}
});
});
编辑:更改了,谢谢 您可以将其转换为:
var td=document.querySelectorAll('td');
运输署署长(运输署署长){
t、 addEventListener('单击',函数()){
if(this.classList.contains('red')){
log(this.className,“!”);
}
})
}
.red{color:rgb(255,0,0);}
.blue{color:rgb(0,255,0);}
.green{color:rgb(0,0255);}
红色
蓝色
绿色
红色
蓝色
绿色
红色
蓝色
绿色
非常感谢大家!在你的帮助下,我自己编写了代码。这段代码对我有用:
var elements = document.getElementsByTagName('td');
for(var i = 0; i<elements.length;i++){
elements[i].addEventListener('click', function () {
if (this.hasAttributes('class','some') ) {
alert('!');
}
});
}
var elements=document.getElementsByTagName('td');
对于(var i=0;i
您的代码不起作用,因为您正在进行的查询没有返回单个值,因为存在多个td(它返回一个HTMLCollection数组)
您可以通过简单地在其父级(tr或表)上添加eventListener,然后使用e.target检查单击的目标并将逻辑放在那里来避免所有这些
下面是一个使用完全本机JS的效率更高的示例
var table = document.querySelector('table');
table.addEventListener('click', function(e) {
var target = e.target;
if(target.tagName === "TD" && target.classList.contains('some') ) {
alert('!');
}
});
这不是一个代码转换服务。显示您尝试过但不起作用的内容,否则是时候进行一些研究了。当您提供实际的代码而不是让别人为您工作时,您将得到很多帮助。我们不能启动类似Jquery的单击事件。在HTML标记上,我们必须提到onClick=functionName().单击调用此函数。@Samir这是老派的做法。这不是1990年代的做法s@RedArtz你能将失败的尝试粘贴到问题中吗?请先尝试搜索,然后发布答案…你会找到很多与此相关的答案。通过这种方式,你可以使用addEventListener(“事件”,你的处理程序)通过核心javascript添加事件换句话说,…elements
不是数组……它是一个类似数组的对象,具有长度,但不能直接对其使用数组方法