好的,所以这里的处理:我正在尝试创建一个用于Greasemonkey/Chrome /其他人用来管理这些事情的脚本。我想要做的一部分是为我为这个特定脚本设计的图标创建标签。我至少有一个关于如何在Jquery中完成这个任务的大概想法。我会使用的代码是这样的:无法将jQuery转换为用于脚本的纯Javascript使用
$('li.tab.iconic').each(function (i) {
var spanName = $('this').attr(id);
var toRemove = '_button';
var spanNameCrop = spanName.replace(toRemove,'');
$('this').append('<span class="tooltip_label">'+spanNameCrop+'</span>');
});
基本上,我想抓住每一个li
的id
属性,从它修剪短语“_button”,然后将剩余的文本到跨度中,这将是标签。我的问题是,我搜索了高和低,但没有发现如何在JavaScript中做这样的循环的明确指示。它甚至有可能吗?
或者,我造型的网站确实包含Jquery库。有没有办法告诉我的脚本加载后,该网站加载jquery,以便jquery脚本将工作?
编辑:得到它的工作感谢阿夫拉多夫。这是最后的脚本。
var jQuery, $ = null;
function addJQuery(callback) {
var p = null;
if(window.opera || window.navigator.vendor.match(/Google/)) {
var div = document.createElement("div");
div.setAttribute("onclick", "return window;");
p = div.onclick();
}
else {
p = unsafeWindow;
}
jQuery = $ = p.jQuery.noConflict();
callback();
}
var myFunction = function() {
jQuery('#header .tab.iconic[id!="missinge_button"] a').css({"background-image":"url('http://i.imgur.com/2QmZG.png')"});
jQuery('#header .tab.iconic').each(function (i) {
var tabID = jQuery(this).attr('id');
var labelName = tabID.replace('_button','');
if (jQuery(this).find('span[class="tooltip_label"]').length){
}
else{
jQuery(this).append('<span class="tooltip_label">'+labelName+'</span>');
jQuery('.tooltip_label').css({'text-transform':'capitalize'});
}
});
};
addJQuery(myFunction);
您不应该为'this'对象使用引号。用'id'属性'$(this).attr('id');' – undefined
我永远不会记得我是否需要引用'this'。固定。 –
您不需要$(document).ready在一个greasemonkey脚本中。 GM脚本执行开始时,文档已经完全加载。 – avladov