首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态appendTo选项

动态appendTo选项
EN

Stack Overflow用户
提问于 2012-08-07 08:32:27
回答 2查看 114关注 0票数 0

这是我用来在系统生成的逗号分隔列表之外创建链接的一些jQuery,它总是工作得很好。

在一个非常特殊的情况下,我需要脚本来添加一个iframe,并打开其中的链接。我想出了以下方法,但无法使其正常工作。我的问题是,有没有可能让脚本以这种方式工作?如果是这样,我错在哪里呢?

JQuery

代码语言:javascript
复制
$('.assigns').each(function() {
var obj = $(this),
    assigns = obj.text().split(','),
    i = 0,
    len = assigns.length;
if (obj.text()) {
    for (i; i < len; i++) {
        var assign = assigns[i].replace(/(^\s*)|(\s*$)/g, '');
        if (assign != "") {

            assigns[i] = '<a onclick="$(' <iframe style="width: 100%; height: 5.5em;" scrolling="no" name="frame" src="http://www.example.com"></iframe>').appendTo('#assign_frame');" title="Assign to '+assign+'" class="button_main_build">'+assign+'</a>';
        }
    }
    obj.html(assigns.join(' '));

}

});

HTML

代码语言:javascript
复制
<div id="assign_frame"></div>

<p class="assigns">Bob Jones, Tom Smith, John Appleseed</p>
EN

回答 2

Stack Overflow用户

发布于 2012-08-07 08:58:01

既然你使用的是jQuery,你可以用jQuery的方式来做。

代码语言:javascript
复制
var $links = $(); // empty jQuery container

for (i; i < len; i++) { 
  var assign = assigns[i].replace(/(^\s*)|(\s*$)/g, '');
  // Create jQuery link element
  // and attach events upon creation
  // allowing for delegation
  var $link = $('<a/>', {
    'class': 'button_main_build',
    href: '#',
    title: 'Assign to ' + assign,
    text: assign,
    click: function () {
      var $iframe = $('<iframe/>', {
        name: 'frame',
        src: 'http://www.example.com',
        scrolling: 'no',
      })
      $iframe.css({
        width: '100%',
        height: '5.5em'
      })
      .appendTo('#assign_frame')
    }
  });

  if (assign) 
    $links.add($link)
}

obj.append($links)
票数 1
EN

Stack Overflow用户

发布于 2012-08-07 08:42:38

这是实现预期目标的更好方法:

代码语言:javascript
复制
$('.assigns').each(function() {
var obj = $(this),
    assigns = obj.text().split(','),
    len = assigns.length;
if (obj.text()) {
    for (var i=0; i < len; i++) {
        var assign = assigns[i].replace(/(^\s*)|(\s*$)/g, '');
        if (assign != "") {
            obj.append( $('<a title="Assign to ' + assign + '" class="button_main_build">'+assign+'</a>') );
        }
    }
}
});

$(".button_main_build").live('click', function() {   
    $('<iframe style="width: 100%; height: 5.5em;" scrolling="no" name="frame" src="http://www.example.com"></iframe>').appendTo('#assign_frame');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11837793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档