1

我可以使用一些帮助来隔离一个或两个元素并将它们放入 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 跨度中的 html放入一个变量中,然后将其应用于在幻想框中显示的内容。

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

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

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

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

4

3 回答 3

1

Just change:

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

to:

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

or:

$('.inherit_span').html($('.example span').html());
于 2012-07-19T07:34:56.123 回答
1

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

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

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

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

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

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

于 2012-07-19T07:36:12.437 回答
1

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

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

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

<script>
var getname;
.
.
于 2012-07-19T07:56:33.870 回答