javascript - 追加到DIV后找不到元素ID

标签 javascript jquery

我正在使用 jQuery 的这段代码在选中复选框后将文本输入字段附加到 div:

$('.sharewithfriends').on("click", ".manual-invite", function () {
        if ($('input[name=manual-invite]').is(':checked')) {
          $('<li style="margin-top:0;display:none"><input type="text" id="invite_email1" name="invite-email1" value="Add an E-Mail" onfocus="clearText(invite_email1);" onblur="fillText(invite_email1);"/><span><a class="add" href="">Add</a></span></li>').appendTo('#invite-emails').slideToggle();

}

除了 onfocusonblur 事件之外,所有这些都工作正常。他们调用以下简单函数,这些函数应该清除焦点字段并用模糊时的默认文本填充它:

function clearText(thefield){
if (thefield.defaultValue==thefield.value)
thefield.value = ""
}

function fillText(thefield){
if (thefield.value=="")
thefield.value=thefield.defaultValue;
}

但是当我单击该字段时,我收到一条错误消息,提示“invite_email1 未定义”,尽管它显然是这样。

有人知道我需要做什么才能让它发挥作用吗?

最佳答案

您没有引用正确的元素。

clearText(invite_email1); 替换为 clearText(this);
更好的是,绑定(bind)事件监听器而不是添加内联事件。

关于javascript - 追加到DIV后找不到元素ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410781/

相关文章:

javascript - googleapis npm 模块和 webpack bundle 错误

javascript - Vue JS 中等于 "="和冒号 ":"符号有什么区别?

javascript - 如何根据第一个的结果一个接一个地运行getJSON

javascript - 如何获取其他Frame中的隐藏值?

javascript - 未捕获的类型错误 : cannot read property 'replace' of undefined In Grid

javascript - 文本调整大小在 div 中不起作用

php - 使用 jquery 过滤组合框

javascript - 在 Backbone.js 和 Underscore.js 中绑定(bind)回调

JavaScript 音频播放器插件在 AngularJS 应用程序中加倍标记

php - Js Validator Plugin Remote Rules for Unique Value Checking without Refresh Page 在 Ajax 调用后不起作用