0

HTMLは次のようになります

<td>
    <input type="text" onkeydown="" style="" value="" id="v65-onepage-billlastname" name="BillingLastName" maxlength="50" size="25" class="co-text">
</td>

私のCSSクラス(他のサーバーからリモートで呼び出された.CSSファイルを変更できないことに注意してください)

#v65-onepage-billfirstname, #v65-onepage-billlastname, #v65-onepage-billcompanyname, #v65-onepage-billaddr1, #v65-onepage-billaddr2, #v65-onepage-billcity, #v65-cart-billemail, #v65-onepage-shipfirstname, #v65-onepage-shiplastname, #v65-onepage-shipcompanyname, #v65-onepage-shipaddr1, #v65-onepage-shipaddr2, #v65-onepage-shipcity {
    width: 280px !important;
}

CSSをオーバーライドし、Jqueryを使用してv65-onepage-billlastnameの幅を150pxに変更するには、使用する方法は何ですか

4

3 に答える 3

4

javascriptとcssを混在させずに、2つのCSSルールを定義するだけです

#v65-onepage-billfirstname { width: 280px !important }
#v65-onepage-billfirstname.afterJSExecution { width: 150px !important }

そのようなクラスを追加します

$('#v65-onepage-billfirstname').addClass('afterJSExecution');

フィドルの例:http://jsfiddle.net/JQtmt/

于 2012-05-31T15:18:40.910 に答える
1

jQuery自体は優先順位を理解できません。ただし、スタイル属性は変更できます。

var id = '#v65-onepage-billlastname';
var curStyle = $(id).attr('style');
if (curStyle)
    $(id).attr('style', curStyle + 'width: 150px !important');
else
    $(id).attr('style', 'width: 150px !important');
于 2012-05-31T15:21:02.910 に答える
0

これを実現するには、HTMLまたはJQueryのいずれかで入力にクラスを追加して、より具体的に元の幅をオーバーライドするCSSスタイルを提供します。例えば

<style type="text/css">

    /* existing style */
    #namedElement {
        width: 280px !important;
    }

    /* new style */
    #namedElement.co-text.namedElementOverride {
        width: 100px !important;
    }

</style>

次に、追加のタグを使用してHTMLを更新するだけです(元の例では共同テキストがすでに存在していました)

<input type="text" onkeydown="" style="" value="" id="namedElement" maxlength="50" size="25" class="co-text namedElementOverride" />

または、JQueryを使用して新しいクラスを割り当てます。

    $('#namedElement.co-text')
        .addClass('namedElementOverride');
于 2012-05-31T15:26:06.377 に答える