[英]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
将节点列表强制为节点数组,然后使用数组方法filter
和forEach
[].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>');
});
另一个选项是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>');
}
});
约瑟夫(评论)是对的-您也可以这样做:
[].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>');
}
});
它应该像
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.