2011-06-25 17 views
2

jQueryを使用すると、「#parentの子はstlye = "width"を持っていますか?jQuery、要素にスタイルがあります

私が先頭を知っている...

jQuery('#parent').children(); 

は、しかし、私はスタイル「幅」が書く方法を知りません。

EDIT HTMLで

divがスタイルは= "幅= xxxの" と言います。私はその幅の最初のオカレンスを見つけて余白を追加したい:0 auto;その部門にそれはビデオをセンタリングするためのものです。

style = "width"と呼ばれるdivの中には、上から3つのレベルがネストされているものがあります。それでも.children()で動作するはずですか?何らかの理由で

、私は以下のコードのいずれかの作業を取得カント...

+2

あなたは*意味するかは 'width'要素自体に指定されたスタイル*または*は、スタイルシートなど、どこからでも適用' width'スタイルを、持っている持っていますか*? –

答えて

3

をあなたは"attribute contains" selectorを使用する必要があります。

説明:を含む値で指定された属性を持つ要素を選択します指定された部分文字列あなたは彼らのstyle属性に文字列width:を持って#parentの子供を与える

jQuery('#parent [style*="width:"]') 

例:あなたはおよそborder-widthと同様のCSSプロパティを心配する必要がある場合はhttp://jsfiddle.net/ambiguous/vpdGa/1/

、あなたは追加することができ、あなたのregular expression selector

jQuery.expr[':'].regex = function(elem, index, match) { 
    var matchParams = match[3].split(','), 
     validLabels = /^(data|css):/, 
     attr = { 
      method: matchParams[0].match(validLabels) ? 
         matchParams[0].split(':')[0] : 'attr', 
      property: matchParams.shift().replace(validLabels,'') 
     }, 
     regexFlags = 'ig', 
     regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags); 
    return regex.test(jQuery(elem)[attr.method](attr.property)); 
} 

そしてthusly検索:

jQuery('#parent :regex(style,(^|\\s)width:)') 

ドン文字列リテラルのバックスラッシュの解釈を超えるために余分なバックスラッシュを忘れないでください。

そして、このアプローチの例:http://jsfiddle.net/ambiguous/vpdGa/4/

+0

を参照してください。@Sjoerdがコメントで述べたように、 'min-width'、' max-width'、 'outline-width'、' border - * - width'と一致します。 –

+0

これは私にとっては効果的ですが、どのように幅を持つ子供にクラスを追加できますか? – cnotethegr8

+0

@Frédéric:良い点、jQueryに正規表現のセレクタをパッチして、厄介な性質に対処できるアップデートを追加しました。 –

2

css()をお試しください:

var width = $(element).css('width') 
0

それはwidhtたりしていない場合は、あなたを取得jqueryの」attrのを使用することができます

http://api.jquery.com/attr/

結果

上の長さのチェックを行います

する必要があります。ここに見られるように

0
function checkStyleAttr(elSelector,attr){ 
    return new RegExp('[^-]'+attr+'[ ]*:').test($(elSelector).attr('style')); 
} 
+1

要素に 'min-width'または' border-width'が設定されている場合、これは 'width'に対してtrueを返します。 – Sjoerd

+0

あなたは正しいです。正規表現のアップデート –

関連する問題