置于div中时,变量属性会消失

时间:2015-12-06 18:03:50

标签: javascript jquery html

可能是一个简单的问题,但我似乎无法找到答案。我正在动态创建一个页面,我可以在其中分享推特链接。

 var twitter = document.createElement('a');
 twitter.setAttribute('href', 'http://twitter.com/share');
 twitter.setAttribute('class', 'twitter-share-button twitter-tweet');
 twitter.setAttribute('data-text', 'I liked this image');
 etc..

然后我将它附加到我想要的div上,例如

   $('#doc').append('<img(miscellaneous HTML)>'+twitter)

我上面的内容有效,但对于CSS格式化目的,我希望带有twitter分享按钮的图像成为子块。所以我创造了这样的东西

  $('#doc').append('<div id="innerblock'+i+'"><img(miscellaneous HTML)>'+twitter+'</div>)

但是当我这样做时,看来twitter var的所有属性都丢失了,只在页面上打印http:// twitter.com/share而不是按钮。

我觉得这可能是我忘记的一个基本概念。

4 个答案:

答案 0 :(得分:2)

您想通过此代码连接DOM对象和String

 $('#doc').append('<div id="innerblock'+i+'"><img(miscellaneous HTML)>'+twitter+'</div>)

这个twitter变量包含一个DOM对象,其余的追加块是String。

试试这个:

var div = $('<div id="innerblock'+i+'"><img(miscellaneous HTML)></div>').append(twitter);
$('#doc').append(div);

答案 1 :(得分:0)

我要做的是代替添加HTML,而不是使用document.createElement创建innerblock div和img标签,然后将twitter附加到img,将img附加到div,然后将其全部附加到#doc

答案 2 :(得分:0)

您无法连接sting和DOM节点。

var div = $("<div id="innerblock'+i+'">").append("<img />").append(twitter);

var div = $("<div/>", {id : "innerblock" + i).append("<img />").append(twitter);

答案 3 :(得分:0)

尝试用.outerHTML String替换twitter元素DOM Object;还在提供给twitter

的字符串参数末尾添加结束引号'

&#13;
&#13;
.append()
&#13;
var twitter = document.createElement('a');
 twitter.setAttribute('href', 'http://twitter.com/share');
 twitter.setAttribute('class', 'twitter-share-button twitter-tweet');
 twitter.setAttribute('data-text', 'I liked this image');
var i = 0;
  $('#doc').append('<div id="innerblock'+i+'"><img />'+twitter.outerHTML+'link</div>')
&#13;
&#13;
&#13;