我的html.twig
模板中有一行。
<div class="panel panel-default" onload="(this.class = determineClass(this))">
以后:
var determineClass = function(element) {
if (element.offsetHeight < element.scrollHeight) {
return element.class + ' some_class';
} else {
return element.class + ' some_other_class';
}
}
我希望onload
中的字符串可以作为JS执行。但是,字符串按字面解释,对该标记的class
没有影响。
如何使用determineClass
函数更改此标记的class
属性?
答案 0 :(得分:2)
据我所知,你不能在div上使用onload
。使用JQuery,这是一种方法(见fiddle)。
HTML
<div class="panel panel-default determineClass"></div>
JS
$(document).ready(function() {
$('.determineClass').each(function() {
$(this).removeClass('determineClass');
if ($(this).offsetHeight < $(this).scrollHeight) {
$(this).addClass('some_class');
} else {
$(this).addClass('some_other_class');
}
});
});
ready
确保函数在文档完全加载后运行。我使用类determineClass
作为标志来标记需要处理的元素。
加载文档后,我遍历所有标记元素,删除标记类并进行实际处理。