我想将以下HTML转换为Javascript函数:
<a class='example' href="../content/flash.html">Click Me</a>
基本上,我想复制通过JS单击链接的效果。
function doStuff()
{
location.replace('../content/ajax.html');
}
上面的代码只是重定向到 ajax.html。
重定向时如何通过 Javascript 激活 CSS 类"示例"?
我想这样做的原因是:CSS 类的"示例"在灯箱(确切地说是 Colorbox)内显示 ajax 的内容.html。
实现此类结果的最快方法是进入 jQuery,特别是它的 click()
处理程序和 ajax load()
函数:
.HTML
<div id="contentArea"></div>
<a class="example" href="#">Click Me</a>
简讯
$(function () {
$('a.example').click(function () {
$('#contentArea').load('../content/flash.html');
return false;
});
});
也有点困惑,但这里有一个猜测。
您可以给 id:
<a id='clickMe' class='example' href="../content/flash.html">Click Me</a>
在 js 中:
document.getElementById("clickMe").className = "example";
我希望你能找到这样的东西
document.getElementById('myDiv').className = 'myRedDivClass';
尝试使用jQuery会让你的生活变得轻松
http://api.jquery.com/addClass/
我确实希望我不想回答这个问题,因为...嗯,这有点奇怪。来了~编辑:我写道:"我不希望我理解这个问题。我的意思是做。大声笑
如果你有多个.example
类,那么你必须使用 getElementsByClassName();
,但并非所有浏览器都支持它。但是,如果您只有一个元素,那么我建议您为其分配一个 ID,然后使用 getElementById();
选择该元素。
并非所有浏览器都支持getElementsByClassName();
的解决方案是:
function getElementsByClassName(classname) {
if (document.getElementsByClassName) {
return document.getElementsByClassName(classname);
} else {
return (function (classn, document) {
var classElements = [],
e = document.getElementsByTagName("*"),
len = e.length,
pattern = new RegExp("(^|\s)" + classn + "(\s|$)"),
i, k;
for (i = 0, k = 0; i<len; i++) {
if (pattern.test(e[i].className)) {
classElements[k] = e[i];
k++;
}
}
return classElements;
})(classname, document);
}
}
链接部分
所以,我认为最好的方法是使用addEventListener();
然而,这是我个人的看法,你可能会找到你认为更适合你需要的其他人。
function doStuff() {
location.replace('../content/ajax.html');
}
var es = getElementsByClassName('example'),
len = e.length;
for(i=0; i<len; i++) {
es[i].addEventListener("click", doStuff, false);
}
呵呵
PS:我没有验证这一点,所以如果有什么问题,有人编辑它或在评论中告诉我!