如何在html字符串上使用jquery API

How to use jquery API over html string

本文关键字:jquery API 字符串 html      更新时间:2023-09-26

上下文:我有一个ajax请求返回数据结构与html键。

我想用jQuery对象包装这些数据,以便能够使用像宽度/高度这样的API,并在将其添加到DOM之前修改数据。

> $('<div width="220" height="200"></div>').width()
0

那么我怎么做才能得到220然后修改它呢?

我使用jquery 1.7.2

编辑:

我不是来自90年代,因为我在我的例子中使用了错误的标签。我的需要是改变一个iframe的宽度和高度响应:

> $('<iframe width="220" height="200"></iframe>').width()
0

元素在添加到DOM之前是没有宽度的。

一个解决方案,如果你真的不需要它在DOM中,是添加它,然后分离它:

var d = $('<div width="220" height="200"></div>');
d.appendTo(document.body);
var w = d.width();
d.detach();

由于在脚本结束其任务之前屏幕不会重新绘制,因此用户不会看到此操作。

但是请注意,如果没有不同的样式,这不会给你220。你可能想要这样:

$('<div style="width:220px;height:200px;"></div>');
演示

  1. 你一定来自90年代,因为谁会在div上使用widthheight属性?
  2. 在添加到DOM之前没有宽度

3。

$('<div width="220" height="200"></div>').attr('width')

使用css:

$('<div></div>').css({ 'width': '220px', 'height': '200px'});

设置宽度和高度。既然你是在设置它,那么之后就真的不需要获取宽度了,对吧?但如果需要的话,可以使用width()

编辑:

也许我误解了——问题不太清楚。如果您想获得一个元素的宽度,那么width工作,但如前所述,元素需要首先添加到DOM。