我想通过单击图像将div的内容替换为另一个div(使用css隐藏)的内容。然而,使用这里建议的一些方法我似乎无法使其工作。
我的代码如下:
HTML
<h3>Recent Callaborations</h3>
<div id="collaborations">
<img class="rec1" src="http://domain.com/michaelscott/wp-content/uploads/2013/02/url.png"/>
<div id="rec1">Some image caption that is hidden now and that will replace what is in the rec div below</div>
</div>
<div id="rec-box" class="rec">
this is the content that is to be replaced
</div>
JS
jQuery(document).ready(function() {
jQuery(".rec1").click(function(event) {
event.preventDefault()
jQuery('#rec-box').html($(this).next('#rec1')[0].outerHTML);
});
});
CSS
#collaborations {
width: 100%;
margin:0 0 10px 0;
padding:0;
}
#collaborations img {
display:inline-block;
}
.rec {
background: #EDEDED;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
padding: 10px;
}
#rec1, #rec2, #rec3, #rec4 {
display:none;
}
答案 0 :(得分:4)
您只需设置正确html()
的{{1}}即可。试试这个:
div
答案 1 :(得分:1)
jQuery(document).ready(function() {
jQuery(".rec1").click(function(event) {
event.preventDefault()
jQuery('#rec-box').html(jQuery("#rec1").html());
});
});
答案 2 :(得分:1)
您的原始代码似乎失败了,因为您使用outerHTML
属性(而不是innerHTML
)捕获整个隐藏元素,而不仅仅是其内容。这意味着新复制的内容仍然具有<div id='rec1'...>
,并且仍然是由于css规则而隐藏的。
jQuery的html
方法可以获取和设置innerHTML
,因此这是正确的方法。
$(document).ready(function () {
$(".rec1").click(function (event) {
event.preventDefault();
$('#rec-box').html($('#rec1').html()); //replaces with contents of #rec1
});
});
答案 3 :(得分:1)
我更喜欢以下解决方案:)希望有所帮助
<强> HTML 强>
<h3>Recent Callaborations</h3>
<div id="collaborations">
<a href="#rec1" class="switchContent"><img class="rec1" src="http://cmagics.eu/michaelscott/wp-content/uploads/2013/02/url.png"/></a>
<div id="rec1">Some image caption that is hidden now and that will replace what is in the rec div below</div>
</div>
<div id="rec-box" class="rec">
this is the content that is to be replaced
</div>
<强>的JavaScript 强>
$(document).ready(function() {
switchContent = function(ev) {
var el = $($(this).attr('href'));
if(el.length == 1) {
$('#rec-box').html(el.html());
}
ev.preventDefault();
};
$('.switchContent').on('click',switchContent);
});
答案 4 :(得分:1)
您需要获得$("#rec").contents()
和.clone()
.append()
之后,$('#rect-box')
需要.empty()
{/ 1}}
jQuery(function($) {
$(".rec1").on('click',function(event) {
event.preventDefault();
$('#rec-box').empty().append(($('#rec1').contents().clone());
});
});