我有一个名为locEmailMsg的文本输入字段:
<input type="text"
class="phColor"
data-placeholder="Your email address"
maxlength="50"
style="font-size: 14px; width: 232px;"
id="locEmailMsg">
在我的$(document).ready()
函数中,我需要做一些事情:设置输入的值,设置data-placeholder属性,然后删除phColor类。
$('#locEmailMsg').val(localStorage.email);
$('#locEmailMsg').attr('data-placeholder', localStorage.email);
$('#locEmailMsg').removeClass('phColor');
正确设置了data-placeholder属性(在Firebug中观看),但未设置该值,也未删除该类。为什么一部分可以工作,但其他部分不起作用?
这是一个非常大的系统的一部分,但是我已经在页面加载时逐步完成了所有脚本,并且在此调用之后没有任何事情发生,这反转了值集/类的移除。
答案 0 :(得分:4)
它可以在你的代码中使用它。
但是,如果再次出现具有相同ID的项目,则只会影响第一项。见这里:
无论输入与否都无关紧要。 ID必须是唯一的。
我把它暂停了,所以你可以看到变化
window.setTimeout(function() {
var localStorage = { email: 'foo@bar.com' };
$('#locEmailMsg')
.val(localStorage.email)
.attr('data-placeholder', localStorage.email)
.removeClass('phColor');
}, 500);
这是失败的html(仅影响第一项)
<input type="text"
class="phColor"
data-placeholder="Your email address"
maxlength="50"
style="font-size: 14px; width: 232px;"
id="locEmailMsg"
value="novalue" />
<div id="locEmailMsg">dupid</div>
<input type="text"
class="phColor"
data-placeholder="Your email address"
maxlength="50"
style="font-size: 14px; width: 232px;"
id="locEmailMsg"
value="novalue" />
这是我看到你的代码无效的唯一方法。
修改强>
在您的页面上运行此选项以确保您没有重复的ID
$('[id]').each(function(){
var ids = $('[id="'+this.id+'"]');
if(ids.length>1 && ids[0]==this)
alert('Multiple IDs #'+this.id);
});
答案 1 :(得分:2)
你的代码看起来很好,它应该工作正常..如果它不起作用那么必然会有一些其他问题,可能会错误地说明这一行..
我会尝试按照以下方法检查失败的位置,
console.log
或alert
localStorage.email
的值,以查看值是否合适。document.getElementById('locEmailMsg').value = localStorage.email;
以确保它不是jQuery问题。