可能是一个简单的问题,但我似乎无法找到答案。我正在动态创建一个页面,我可以在其中分享推特链接。
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而不是按钮。
我觉得这可能是我忘记的一个基本概念。
答案 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
'
.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;