我有一个链接列表,所有链接都在同一个类中,每个链接都有一个自定义参数(“switch-text”)。我的脚本应该将自定义参数的文本复制到每个链接的文本中并替换它(“选择A”应该变为“选择一个请”)。
只有1个链接可以正常工作,但是当我添加几个链接时,它们都会切换到第一个参数。 (“Pick B”应替换为“Pick B Please”,但不是。)
我可以使用each()来解决这个问题,但我最好还是寻找一个简单的单一jQuery系列来完成它,我很困惑我还没有找到如何实现这个目标。
有人可以帮忙吗?谢谢!
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$(".switcher").text( $(".switcher").attr("switch-text") );
});
</script>
<a href="a" class="switcher" switch-text="Pick A Please">Pick A</a><br>
<a href="b" class="switcher" switch-text="Pick B Please">Pick B</a><br>
答案 0 :(得分:2)
您应该使用每个来浏览所有元素,并使用 this 始终对当前元素执行操作。
$(document).ready(function() {
$(".switcher").each(function(){
$(this).text( $(this).attr("switch-text") );
});
});
没有jQuery 你需要:
代码:
readyList.push(function() {
var els = getElementsByClassName("switcher");
for ( var i = els.length; i--; ) {
els[i].innerHTML = els[i].getAttribute("switch-text");
}
});
更改Dean的脚本以执行document.ready上的功能:
function init() {
// ...
// do stuff
for ( var i = 0; i < readyList.length; i++ ) {
if ( typeof readyList[i] === "function" ) {
readyList[i]();
}
}
//..
}
就是这样。你节省了很多带宽。 :)