Javascript 彩虹效果无法正确使用hrefs
我有一个代码,我正试图写一个网站的主机,一个成员要求一些支持。我写了这个,它只对文本有效,但使用hrefs它会破坏标记 代码:Javascript 彩虹效果无法正确使用hrefs,javascript,jquery,object,for-loop,href,Javascript,Jquery,Object,For Loop,Href,我有一个代码,我正试图写一个网站的主机,一个成员要求一些支持。我写了这个,它只对文本有效,但使用hrefs它会破坏标记 代码: $.getScript(“http://xoxco.com/projects/code/rainbow/rainbow.js“,函数(){ var selectMe=[“u1”,“u2”]; 对于(var i=0;i@EasyBB),我试图看到它,但没有发现彩虹效应问题,我可以在任何地方看到它 如果你的意思是说,不应该在Rainbow中看到strong,而应该只看到s
$.getScript(“http://xoxco.com/projects/code/rainbow/rainbow.js“,函数(){
var selectMe=[“u1”,“u2”];
对于(var i=0;i@EasyBB),我试图看到它,但没有发现彩虹效应问题,我可以在任何地方看到它
如果你的意思是说,不应该在Rainbow中看到strong,而应该只看到span中的文本,那么这就是插件的工作方式
如果您看到插件代码
if (chars[x]!=' ') {
newstr = newstr + '<span style="color: ' + options.colors[counter] + ';">' + chars[x] + '</span>';
counter++;
} else {
newstr = newstr + ' ';
}
if(字符[x]!=''){
newstr=newstr+''+chars[x]+'';
计数器++;
}否则{
newstr=newstr+“”;
}
他们所做的是,他们打破了元素的HTML内容,并通过将其添加到SPAN
因此,TEST
变成了
等等,所以它不再像HTML标记那样,而是简单的文本
我认为你最好的选择是找到文本的直接父元素
差不多
$.getScript("http://xoxco.com/projects/code/rainbow/rainbow.js",function() {
var selectMe= ["u1","u2"];
for(var i =0;i<selectMe.length;i++){
$('.username').find('a[href*="'+selectMe[i]+'"]').addClass('selected');
}
$('.selected').find('*').andSelf().contents().filter(function(){
return this.nodeType===3;
}).parent().text(function() {
$(this).rainbow({
colors: [
'#FF0000',
'#f26522',
'#fff200',
'#00a651',
'#28abe2',
'#2e3192',
'#6868ff'
],
animate:true,
animateInterval:100,
pad:false,
pauseLength:100
});
});
});
$.getScript(“http://xoxco.com/projects/code/rainbow/rainbow.js“,函数(){
var selectMe=[“u1”,“u2”];
对于(var i=0;iwhats-worng?你能详细说明这个问题吗?如果你看一下JSBIN,你可以看到眼前的问题:)现在工作得很好,问题是它显示了HTML,现在它没有。你能给我解释一下nodeType==3和andSelf()吗?nodeType是3是textNode…但是。find('*'))
如果除了TEXT
元素之外没有子元素,则跳过节点,这样addSlef将添加执行find
的所有元素。因此不会错过span class='selected'直接包含文本的元素。
$.getScript("http://xoxco.com/projects/code/rainbow/rainbow.js",function() {
var selectMe= ["u1","u2"];
for(var i =0;i<selectMe.length;i++){
$('.username').find('a[href*="'+selectMe[i]+'"]').addClass('selected');
}
$('.selected').find('*').andSelf().contents().filter(function(){
return this.nodeType===3;
}).parent().text(function() {
$(this).rainbow({
colors: [
'#FF0000',
'#f26522',
'#fff200',
'#00a651',
'#28abe2',
'#2e3192',
'#6868ff'
],
animate:true,
animateInterval:100,
pad:false,
pauseLength:100
});
});
});