繁体   English   中英

jQuery到纯Javascript转换

[英]jquery to Plain Javascript conversion

我需要将一行jQuery代码转换为普通的旧JavaScript。 有人可以指导我吗?

$('a').filter(function(index) {
    return $(this).text() === "Officer Title Equivalent*";
}).each(function() {
    $(this).html($(this).html().replace("*", "<span style='color:red'>*</span>"));
});

对于直译...

抓住a元素。

var a = document.getElementsByTagName('a');

使用slice将节点列表强制为节点数组,然后使用数组方法filterforEach

[].slice.call(a).filter(function (el) {
  return el.textContent === 'Officer Title Equivalent*';
}).forEach(function (el) {
  el.innerHTML = el.textContent.replace('*', '<span style="color:red">*</span>');
});

DEMO

另一个选项是gurvinder在他的问题中暗示的内容-不需要filter ,只是有条件的:

[].slice.call(a).forEach(function (el) {
  var txt = el.textContent;
  if (txt === 'Officer Title Equivalent*') {
    el.innerHTML = txt.replace('*', '<span style="color:red">*</span>');
  }
});

DEMO

约瑟夫(评论)是对的-您也可以这样做:

[].forEach.call(document.getElementsByTagName('a'), function (el) {
  var txt = el.textContent;
  if (txt === 'Officer Title Equivalent*') {
    el.innerHTML = txt.replace('*', '<span style="color:red">*</span>');
  }
});

DEMO

它应该像

var allAnchors = document.getElementsByTagName( "a" );
for ( var counter = 0; counter < allAnchors.length; counter++)
{
   var node = allAnchors.item( counter );
   if ( node.innerText === "Officer Title Equivalent*" )
   {
      node.innerHTML = node.innerHTML.replace("*", "<span style='color:red'>*</span>");
   }
}

应该适用于大多数浏览器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM