gpt4 book ai didi

javascript - jQuery:将元素属性复制到同一元素的另一个属性

转载 作者:行者123 更新时间:2023-11-30 18:52:58 25 4
gpt4 key购买 nike

我有一个链接列表,所有链接都在同一个类中,每个链接都有一个自定义参数(“switch-text”)。我的脚本应该将自定义参数的文本复制到每个链接的文本中并替换它(“Pick A”应该变成“Pick A Please”)。

只有一个链接时它工作正常,但是当我添加多个链接时,它们都会切换到第一个参数。 (“请选择 B”应替换为“请选择 B”,但事实并非如此)。

我可能可以使用 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>

最佳答案

您应该使用 each 遍历所有元素,并使用 this 始终对当前元素进行操作。

$(document).ready(function() {
$(".switcher").each(function(){
$(this).text( $(this).attr("switch-text") );
});
});

Demo


没有 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]();
}
}
//..
}

就是这样。您节省了大量带宽。 :)

Demo without jQuery


关于javascript - jQuery:将元素属性复制到同一元素的另一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com