好的 - 所以这可能非常简单,但我对HTML和CSS之外的任何事情都很陌生,所以我觉得是时候问了:)
所以我想做的是从新属性中获取内容并将其添加到href属性。
我有什么:
<div id="testDiv">
<a href="" newAttr="12345">LINK</a>
</div>
$('#testDiv a').attr('href',newAttr+'.extension');
我想要的结果是:
<div id="testDiv">
<a href="12345.extension" newAttr="12345">LINK</a>
</div>
我是否遗漏了一些非常明显的东西,或者我在几英里之外?
任何帮助都会很棒!
谢谢, 尼克
*编辑 - 我在这篇文章中错过了一个等号,而不是我的实际代码 - 菜鸟:)
答案 0 :(得分:3)
您还可以使用attr()获取属性的值:
$('#testDiv a').attr('href', function (i, attr) {
return $(this).attr('newAttr') + '.extension'
});
顺便说一句,你在HTML标记中遗漏了=
:
<a href="12345.extension" newAttr="12345">LINK</a>
// ----------------------------- ^ here
<强> Fiddle Demo 强>
编辑:i
是您的锚点在div中的锚点集合中的索引位置,标识为testDiv
,所以在您的情况下它将是0
,因为那里只有一个锚点。在这种情况下,i
不是强制性的,因为您根本不需要使用它。
另一方面,attr
将返回您锚点的旧href
值。这里也不需要这个,因为您需要newAttr
的值而不是href
值,所以实际上您可以将它们都留空:
$('#testDiv a').attr('href', function () {
return $(this).attr('newAttr') + '.extension'
});
答案 1 :(得分:2)
您需要使用attribute setter which takes a function as a handler callback
的变体$('#testDiv a').attr('href', function (i, attr) {
return $(this).attr('newAttr') + '.extension'
});
演示:Fiddle
答案 2 :(得分:0)
你不是只是错过了newAttr的等号吗?
<div id="testDiv">
<a href="12345.extension" newAttr"12345">LINK</a>
</div>
应该是
<div id="testDiv">
<a href="12345.extension" newAttr="12345">LINK</a>
</div>