另一个元素上的JavaScript setAttribute

另一个元素上的JavaScript setAttribute,javascript,element,extern,setattribute,Javascript,Element,Extern,Setattribute,在另一个元素上设置属性有问题 我将PHP代码与JS和HTML一起使用,它看起来像: <textarea name='$id' id='$id' class='regular-text' cols='60' rows='1' tabindex='2'" . "onkeypress =\"javascript:document.getElementById('content').setAttribute('onkeypress', document.getElement

在另一个元素上设置属性有问题

我将PHP代码与JS和HTML一起使用,它看起来像:

<textarea name='$id' id='$id' class='regular-text' cols='60' rows='1' tabindex='2'"
            . "onkeypress =\"javascript:document.getElementById('content').setAttribute('onkeypress', document.getElementById('so_observer_heading_count').innerHTML = document.getElementById('content').value.length)\">$value</textarea>
$value
你必须知道我有两个元素。第一个(‘内容’)是我用来写文本的,另一个(‘so_observer_heading_count’)应该更新第一个元素的符号数量

所以我的问题是,如何在另一个元素上设置属性

我已经检查了名称是否正确,以及当我更改2上文本区域的内容时。元素我从第一个元素得到了正确的数量。但我只想更改第一个元素中的内容以刷新数量

我不想更改第一个元素的代码!不要被文本区域弄糊涂,将来这应该是一个标签或其他东西。

我想说“setAttribute”在方法上不起作用。请尝试:

 document.getElementById('content').onkeypress = function() { document.getElementById('so_observer_heading_count').innerHTML = document.getElementById('content').value.length };

嗯,当然还有更多。。这是一种有效的方法,但您忘记了转义单引号,因此js将事件视为字符串,而不是解析最终结果:

<textarea name='$id' id='$id' class='regular-text' cols='60' rows='1' tabindex='2'"
        . "onkeypress =\"document.getElementById('content').setAttribute('onkeypress', 'document.getElementById(\'so_observer_heading_count\').innerHTML = document.getElementById(\'content\').value.length;')\">$value</textarea>
$value
艾尔塞维斯。。我个人会通过一个包含的js文件来实现这一点,该文件在document load/ready上执行上述行,而不是每次按下一个键

更新:轻微编辑,以便将我从上述代码中删除的任何内容添加回,以防您想直接将其复制进去。

首先:

不要使用内联事件绑定。始终使用“真正的”javascript(这样还可以防止转义引号的问题),这将更干净、更易于维护

您的代码还有另一个问题:textarea上有一个eventhandler“keypress”,它在每个“keypress”上绑定另一个属性到您的内容元素。这不是很有效,而且最有可能无法正常工作。此代码应该是您需要的所有代码:

document.getElementById('content').addEventListener("keyup",function(){

    var obs  = document.getElementById('so_observer_heading_count');    

    obs.innerHTML = this.value.length;

});​
这是给你的


编辑:我将事件从
keypress
更改为
keyup
以1)正确计数2)考虑字符删除

我们可以看看你的html的其余部分吗?另外,我也很困惑为什么每次有人按下一个键时,你都要将一个属性更改为相同的东西。这是一个Wordpress插件,完全发布在这里太过分了。问题是,如果这是可能的,如果我的想法是正确的。什么方法,确切地说是OP试图使用它?我看不出有任何事情会产生这样的效果。我想解析一个文本框进行SEO优化。因此,我需要一个主框上的更改事件。您忘记删除小提琴中的错误引用,只是一个提示。您的代码看起来非常好。但我不知道该写在哪里。你能帮我吗。这是完整的函数。@kwoxer sry,代码看起来非常混乱。我在代码中看不到任何称为“content”的元素。对你有用吗?@kwoxer如果没有-你能为你的页面设置一个示例,然后我们会相应地调整它。不,我想在内容框上,而不是在我的“新”区域上。很难解释。你已经有了Wordpress,当你编辑或创建一些东西时,你知道这个框。我正在做一个截图。不幸的是没有工作。问题是我真的不想在2上出现按键事件。文本区。我需要一些与克里斯托弗不同的东西,克里斯托弗的答案是前进的道路。