Jquery复制属性

Rad*_*ris 0 jquery

我谷歌了,但没有找到这样的东西.

我有一个iframe有2个主要属性s​​rc =#和link = http://somesite.com

<iframe id="myiframe" src="#" link="https://somesite.com?id=x&anotherid=y" style="position:absolute; left:0px; top:0px; width:99%; min-width:80%; height:99%; min-height:80%; padding:0px;"></iframe>
Run Code Online (Sandbox Code Playgroud)

我从一些PHP脚本加载HTML中的iframe但我不想加载页面,这就是为什么我使用#作为源,现在当我点击网站上的一个按钮它将加载iframe(如果它没有加载从上一次点击),我的临时解决方案是:

<input type="button" value="load" onClick="var fr = document.getElementById('myiframe');if(fr.src.substr(-1)=='#'){fr.src=document.fr.getAttribute('link')};" />
Run Code Online (Sandbox Code Playgroud)

现在我有一点时间来实现jQuery,我想知道jQuery中是否有一些简单的代码可以从属性复制到另一个属性,或者是否有更好的解决方案来实现它.

像这样:$('#myiframe').attr('src',attr('link'));

我知道下面的内容会有效

$('#myiframe').attr('src', attr('link'));
Run Code Online (Sandbox Code Playgroud)

但我认为两次选择相同的元素并不是很多.(我是一个优化者疯子:))

或者你认为我必须使用一个函数:

$('#myiframe').attr('src', function(){
    ...
});
Run Code Online (Sandbox Code Playgroud)

我的问题是实现这一目标的最佳方法是什么.谢谢.

Emi*_*nov 5

如果您不想两次选择元素 - 缓存它.

var $myiframe = $('#myiframe');
$myiframe.attr('src', $myiframe.attr('link'));
Run Code Online (Sandbox Code Playgroud)

我觉得$('#myiframe').attr('src', attr('link')); 不行.

您也应该能够使用一个函数:

$('#myiframe').attr('src', function () {
    return $(this).attr('link');
});
Run Code Online (Sandbox Code Playgroud)

另外,作为旁注 - 尽量避免使用该onclick=属性.只需将jQuery绑定到click事件,如下所示:

$('input[type=button][value=load]').click(function () {
    // One of the solutions above
});
Run Code Online (Sandbox Code Playgroud)