0
Я хочу изменить стиль родительского элемента, загрузив сайт. Я думал, что это было бы возможно, как:JQuery change css родителя
HTML
<p><script>setBGColor("True");</script>test</p>
JS
function setBGColor(status){
if (status == "True")
$(this.parent).css("background", "green");
}
Но по какой-то причине. Он не становится зеленым. Почему нет?
Это не сработает. Это из-за того, к чему относится ключевое слово 'this' в контексте вашей функции. ключевое слово 'this', когда оно используется в контексте функции, обычно относится к объекту, который вызывает функцию. Поскольку вы вызываете внутри тега скрипта, он будет ссылаться на объект окна (он выполняется в глобальном контексте). Таким образом, 'this.parent' (или то, что должно быть' this.parentNode') будет «неопределенным». Возможно, есть способ снять то, что вы пытаетесь сделать, но это будет грязно и нецелесообразно. –
Вот немного больше информации об ['this' в глобальном контексте] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this#Global_context) (где 'this' оценивается) –
Кроме того, я думаю, вам нужен фоновый цвет. – nurdyguy