2014-10-29 2 views
0

Я использовал следующий код для изменения содержимого стиля ..assingning переменную стиля в JQuery

$("#Button1").click(function() { 

    var str="12"; 
    if ($('#additionalStyles').length) { 
     $('#additionalStyles').remove(); 
    } else { 
     $('head').append('<style id="additionalStyles">.noti_bubble:before{color: yellow; content:'"str"';}</style>'); 
    } 
}); 

Фактический код КСС ......

.noti_bubble:before{ 
    position:absolute; 
    padding:1px 2px 1px 2px; 
    background-color:red; 
    content:"5"; 
    color:white; 
    font-weight:bold; 
    height : 11px; 
    width: 15px; 
} 

jquery изменяет цвет на желтый. но не изменить содержание от 5 до 12 .... Просьба помочь мне ....

+0

Вы не указали 'Content' в' $ ('голова') добавляет ('<стиль ID = "а .... ................... ' – Satpal

+0

Поскольку вы устанавливаете его на пустую строку, а не на 12:' content: ''; ' – dfsq

+0

Я не вижу абсолютно никаких причин, почему значение неиспользуемого Переменная 'str' должна иметь какое-либо влияние на стиль. Вероятно, вы хотите обновить образец, чтобы показать, как вы используете эту переменную (или как« 12 »используется где-то в другом месте). –

ответ

4

Существует проблемы конкатенации строк в скрипте

$("#Button1").click(function() { 
 
    var str = "12"; 
 
    if ($('#additionalStyles').length) { 
 
    $('#additionalStyles').remove(); 
 
    } else { 
 
    $('head').append('<style id="additionalStyles">.noti_bubble:before{color: yellow; content:"' + str + '";}</style>'); 
 
    } 
 
});
.noti_bubble:before { 
 
    position: absolute; 
 
    padding: 1px 2px 1px 2px; 
 
    background-color: red; 
 
    content: "5"; 
 
    color: white; 
 
    font-weight: bold; 
 
    height: 11px; 
 
    width: 15px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button id="Button1">Button1</button> 
 
<span class="noti_bubble"></span>


Но Я бы рекомендовал использовать другой класс для изменения стиля, если это возможно, вместо добавления определения динамического стиля (возможно, только если значение содержимого не является динамическим)

$("#Button1").click(function() { 
 
    $('.noti_bubble').toggleClass('special'); 
 
});
.noti_bubble:before { 
 
    position: absolute; 
 
    padding: 1px 2px 1px 2px; 
 
    background-color: red; 
 
    content: "5"; 
 
    color: white; 
 
    font-weight: bold; 
 
    height: 11px; 
 
    width: 15px; 
 
} 
 
.noti_bubble.special:before { 
 
    color: yellow; 
 
    content: "12"; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button id="Button1">Button1</button> 
 
<span class="noti_bubble"></span>

+0

Я изменил свой код как $ ('head'). Append (''); но результат «+ str» –

+0

извините .. мой мидак ... его сработало. –

0

раз попробовать это:.

$('head').append('<style id="additionalStyles">.noti_bubble:before{color: yellow; content:"'+str+'";}</style>'); 
+0

ys его workd ... Это временное изменение.? Тогда вместо того, чтобы просто усваивать var str = "12", мы можем взять это значение из базы данных и назначить ему? –

+0

Да, вы не можете установить его в качестве примера через переменную – Anup

Смежные вопросы