这是我的剧本

var str1 = "#";
var str2 = unique;
var n = str1.concat(str2);

if (status > 0){
$(n).attr("src", "/img/red.jpg")

}else{
$(n).attr("src", "/img/green.jpg")
}


这是我在表中的html--唯一代码(相当长的ID?)与us.key()相同
当我在find()标记内使用<tr>时,它确实起作用了(虽然过于复杂并且容易出错)。这很简单,应该可以,但不是吗?有什么想法我做错了吗?

    <td>
    {% if us.status == 0 %}
<img id={{us.key()}} src="/img/green.jpg"></img>
{% else %}
<img     id="{{us.key()}}" src="/img/red.jpg"></img>
{% endif %}
    </td>


更新:如果我直接将字符串添加到脚本中,则可以正常工作-串联字符串以某种方式被更改

最佳答案

尝试像这样正确地执行jQuery代码:

(function ($) {
    "use strict";
    // Based on your original code, I'm assuming that both the 'unique' and 'status' variables are global
    var str = unique;
    if (status > 0) {
        $('#' + str).prop("src", "/img/red.jpg");
    } else {
        $('#' + str).prop("src", "/img/green.jpg");
    }
}(jQuery));


请注意,您应该使用.prop()方法而不是.attr()。建议使用prop。

关于javascript - 属性未设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19398711/

10-11 13:57