【问题标题】:attributes not getting set属性未设置
【发布时间】:2013-10-16 08:37:35
【问题描述】:

这是我的脚本

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() 相同 当我在<tr> 标签中使用find() 时它确实有效(虽然过于复杂且容易出错)这很简单并且应该有效,但不是吗?任何想法我做错了什么?

    <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>

更新:如果我将字符串直接添加到脚本中,它会起作用 - 以某种方式连接的字符串正在发生变化

【问题讨论】:

    标签: javascript jquery html google-app-engine


    【解决方案1】:

    尝试像这样正确地编写 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。

    【讨论】:

    • 感谢您直言不讳,我认为 .attr() 是正确的方法。是的 status 和 unique 是全局字符串
    • 很高兴知道这一点。上帝保佑。 :)
    【解决方案2】:

    你可以试试

    var str1 = "#";
    var str2 = unique;
    
    
    //  var n = str1.concat(str2);
    
    if (status > 0){
    $("#"+str2 ).attr("src", "/img/red.jpg")
    
    }else{
    $("#"+str2 ).attr("src", "/img/green.jpg")
    }
    

    【讨论】:

    • 感谢您的回答,但仍然没有设置 scr 属性。我能想到的是 id 太长了,可能有非标准字符。一个示例唯一代码可能是 - ag1kZXZ-cGV0ZXJ0ZXN0chULEghFbXBsb3llZRiAgICAgLzyCgw - 也许这就是问题所在?
    • 在控制台中查看是否设置了 attr 或者您的图像路径是否正确?
    猜你喜欢
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多