如何在使用 fancybox 时从这个 span 元素制作一个 javascript 变量

How do I make a javascript variable from this span element while using fancybox?

本文关键字:变量 javascript 一个 元素 span fancybox      更新时间:2023-11-14

我可以使用一些帮助来隔离一两个元素并将它们放入javascript变量中。我仍在学习如何正确识别DOM中的东西,我必须想象我正在尝试做的事情是可能的。

请考虑以下事项:

$('.fancybox').fancybox({
    'autoScale': false,
    'type': 'iframe',
    'padding': 0,
    'closeClick': false,
    helpers: {
        overlay: {
            closeClick: false
        }
    },
    afterShow: function () {
        $("#overlay_content_top").show();
        $("#overlay_content_bottom").show();
    },
    afterClose: function () {
        $("#overlay_content_top").hide();
        $("#overlay_content_bottom").hide();
    }
});
<div class ="example">
<a class="fancybox" href="http://my-iframe.example"><img src="myimage.jpg" width="x" height="y" /></a>
**<span>Important Information I need</span>**
</div>

我需要将 .example span 中的 html 放入一个变量中,然后将其应用于花哨框中显示的内容。

所以在疯狂的伪代码中是这样的事情:

var getname = $(this).html('.example span');
$('.inherit_span').html(getname);

页面上有二十个不同的项目可以单击,我不想为每个项目生成单独的 id 或名称,我宁愿在调用 fancybox 函数时从范围中抓取 html,然后将该名称应用于灯箱显示中的另一个元素。任何帮助表示赞赏。

您可能会遇到以下情况:有多个 <a> 标签,其后有多个 <span> 标签,在这种情况下,请在beforeShow回调中使用 .next() 方法,例如

beforeShow: function(){
 var getname = $(this.element).next('span').html();
 $('.inherit_span').html(getname);
}

注意:为了使变量getname在回调之外可用,请在脚本开头声明它,例如

<script>
var getname;
.
.

其实你已经很接近了!首先,您必须选择 获取您的span .您可以使用text()方法或html()方法获取它的文本或 HTML!

var html = $('div.example > span').html()

然后,您必须获取要放置文本的元素,并使用括号内的值/变量的 html() 方法来设置它。

$('.inherit_span').html(html);

使用不带值的html()获取值,使用值的html()设置值

text()方法的工作方式几乎相同,但会过滤掉任何 HTML 格式。

只需更改:

var getname = $(this).html('.example span');

自:

var getname = $('.example span').html();

或:

$('.inherit_span').html($('.example span').html());