0
$("#main .primary")
        .width($(this).closest("#main .row")
        .outerWidth(true) - $(this).closest("#main .secondary")
        .outerWidth(true));

..まったく機能しません。

私がやっていることは、 (親)からprimary幅を差し引いて、divに幅を適用することです。secondarymain

<div id="main">
    <div class="row">
        <div class="primary"></div>
        <div class="secondary"></div>
    </div>
</div>

ありがとう

4

2 に答える 2

4

最初に、セレクター#main .rowは空の jQuery オブジェクトを返します。ID とクラスを一緒に持つ要素を一致させたい場合は、次のように使用できます。

#myId.my-class // Select by id and class
div#myId.my-class // Select by element and the id and the class

あなたの場合は siblings() メソッドを使用することをお勧めします

$('#main .primary')
  .width( function(){ 
   return $(this).closest('.row').width() - // or you can use .parent() instead
          $(this).siblings('.secondary').outerWidth(true); 
})
于 2013-01-22T12:32:25.327 に答える
0

以下の解決策がお役に立てば幸いです。

時間がないのでテストしませんでした。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

$(document).ready(function()
{

    var main      = $("#main");
    var primary   = main.find('.row > .primary');
    var secondary = main.find('.row > .secondary');
    var newWidth  = main.width() - secondary.width() ;

    console.log(newWidth);
    primary.css('width',newWidth);
});

</script>

<div id="main" style="border:5px solid red;padding:10px;width:600px;">
    <div class="row" style="border:5px solid red;padding:10px;width:500px;">
        <div class="primary" style="border:2px solid #CCC;width:200px;padding:10px;"></div>
        <div class="secondary" style="border:5px solid #669900;width:200px;padding:10px;"></div>
    </div>
</div>
于 2013-01-22T12:40:16.870 に答える