Javascript 如何用原生JS编写

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

我有这个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', 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
    不是数组……它是一个类似数组的对象,具有长度,但不能直接对其使用数组方法