对td元素使用'onload'相似的函数

时间:2017-08-10 15:38:39

标签: javascript jquery html django

我的django模板中有一个数据表,我在表中有一个td元素,如下所示

 <td onclick="setColor('{{x.name}}')">{{x.name}}</td>`

每次加载网页时我都需要这个元素来运行'setColor'函数。我无法在这里使用onload,因为oload对这些元素无效,但是我需要传递这些参数(因为我在这里使用了for循环,这个函数在循环中被调用多次{{x.id} }}限制我只从精确的td元素调用此函数。有没有办法可以实现这一点,以便在页面加载时调用函数,并将参数传递给函数?

2 个答案:

答案 0 :(得分:0)

我使用了django过滤器来解决这个问题。 html代码如下:

{% load filters.py %}
 <td><span style="color:{{x.name|getNameColor}}">{{x.name}}</span></td>

我在filters.py中定义了getNameColor过滤器,如下所示:

    @register.filter(name='getNameColor')
def getNameColor(value):
    if value == 'xxx':
        return '#f19203'
    elif value == 'yyy':
        return '#b3a800'
    elif value == 'zzz':
        return '#f45c42'
    elif value == 'uuu':
        return '#44cc00'

有用的链接:http://www.pfinn.net/custom-django-filter-tutorial.html

答案 1 :(得分:0)

对于谁正在搜索HTML / JavaScript答案:

我遇到了同样的问题,并找到了使用在window.onload函数中检索到的自定义属性的解决方案。在我的页面中,我使用了<tr>元素,但这也适用于<td>

在表中:

<table>
    <tr name="my_row" foo="value1"><td>value1</td></tr>
    <tr name="my_row" foo="value2"><td>value2</td></tr>
</table>

在window.onload函数中:

window.onload = function bar() {
    var rows = document.getElementsByName("my_row")
    for (row in rows) {
        var foo = row.getAttribute("foo")
        if (foo == "value1") {
            // Do something
        }
    }
}