相关疑难解决方法(0)

jQuery可以获得与元素相关的所有CSS样式吗?

有没有一种方法可以让jQuery从现有元素中获取所有CSS并将其应用到另一个元素而不将它们全部列出?

我知道如果它们是样式属性,它会起作用attr(),但我的所有样式都在外部样式表中.

javascript css jquery

296
推荐指数
4
解决办法
16万
查看次数

jQuery - 如何使用元素的HTML获取所有样式/ css(在内部/外部文档中定义)

我知道$("#divId").html()会给我innerHtml.我还需要它的样式(可能通过类的方式定义)内联style属性或单独<style>标记内的所有样式/类.

可能吗?

更新
如果html是什么样的,<div id="testDiv">cfwcvb</div>并且#testDiv外部样式表中定义了css类?

更新2
很抱歉没有提前澄清这一点

如果这是我的HTML

<div id="divId">
    <span class="someClass">Some innerText</span>
</div>
Run Code Online (Sandbox Code Playgroud)

样式在单独的样式表或头部样式中定义.

#divId {
    clear: both;
    padding: 3px;
    border: 2px dotted #CCC;
    font-size: 107%;
    line-height: 130%;
    width: 660px;
}
.someClass {
    color: blue;
}
Run Code Online (Sandbox Code Playgroud)

然后,当我尝试获取内部html $("#divId").html()或调用任何其他自定义函数时,我需要类似下面的内容

<style>
#divId {
    clear: both;
    padding: 3px;
    border: 2px dotted #CCC;
    font-size: 107%;
    line-height: 130%;
    width: 660px;
}
.someClass {
    color: blue;
}
</style>

<div id="divId">
    <span class="someClass">Some innerText</span>
</div> …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery styles

18
推荐指数
3
解决办法
4万
查看次数

如何从元素中删除所有继承和计算的样式?

该页面包含以下CSS:

input[type=text]
{
    display: inline; padding: 7px; background-color: #f6f6f6; font-size: 12px; letter-spacing: 1px; border: 1px solid #aac7d1; 
    /* lots of other styles here... */
}
Run Code Online (Sandbox Code Playgroud)

我有很多文本输入元素和以下内容:

<input type="text" id="txt1" />
Run Code Online (Sandbox Code Playgroud)

我尝试通过jQuery将不同的样式应用于这个单独的文本框(txt1):

$('#txt1').removeClass().removeAttr('style').css({
    'background-color': '#ff0000',
    //lots of other styles here...
});
Run Code Online (Sandbox Code Playgroud)

但是这些来自样式表的样式无法通过这种方式从元素中删除.如果我是对的,那么css规则input[type=text]不是自定义类,所以removeClass()在这里不起作用.

我想做的是; 完全删除所有应用于元素的样式txt1.除了获取所有计算样式的列表并将其设置为空之外,是否有某种方法可以执行此操作?

html javascript css jquery styles

6
推荐指数
1
解决办法
6614
查看次数

在JavaScript中获取元素样式表样式

我一直在使用John Resig的getStylePro JavaScript技术来获得元素的风格:

function getStyle(elem, name) {
    // J/S Pro Techniques p136
    if (elem.style[name]) {
        return elem.style[name];
    } else if (elem.currentStyle) {
        return elem.currentStyle[name];
    }
    else if (document.defaultView && document.defaultView.getComputedStyle) {
        name = name.replace(/([A-Z])/g, "-$1");
        name = name.toLowerCase();
        s = document.defaultView.getComputedStyle(elem, "");
        return s && s.getPropertyValue(name);
    } else {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果未指定样式,则此方法返回元素的默认样式:

http://johnboxall.github.com/test/getStyle.html

替代文字http://img.skitch.com/20081227-8qhxie51py21yxuq7scy32635a.png

是否可以只获取元素的样式表指定样式(如果未定义样式,则返回null)?

更新:

为什么我需要这样的野兽?我正在构建一个允许用户设置元素样式的小组件.一个可应用的样式是text-align- ,,left -使用无样式元素默认.这使得无法判断元素是否居中,因为用户希望它居中或居中,因为这是默认样式.centerrightgetStylecenter

javascript css stylesheet

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

css ×4

javascript ×4

jquery ×3

styles ×2

html ×1

stylesheet ×1