jQuery form.id vs form.id.value

jQuery form.id vs form.id.value

本文关键字:form id value vs jQuery      更新时间:2023-09-26

我正在做dokuwiki插件,我发现了js如何存储元素id的有趣想法。我不确定发生了什么事……所以我有一个来自dokuwiki linkwiz.js文件的代码用于确定':' char是否在id字符串的一部分:

    dw_linkwiz.textArea = $editor[0];
//some code between
    // prepend colon inside namespaces for non namespace pages
    if(dw_linkwiz.textArea.form.id.value.indexOf(':') != -1 &&
       link.indexOf(':') == -1){
       link = ':' + link;
    }

中的$editor是jQuery对象。正如你所看到的,他们使用form.id.value来获取元素的id,但在某些情况下,当我使用jQuery .attr方法动态设置元素的id时,form.id.value是未定义的,id字符串只是保持在form中。id。你知道为什么会这样吗?哪个是更标准的编译器?

DOM元素id通常是字符串而不是对象,因此form.id将是具有id值的字符串。它不应该是一个有值的对象。这个插件可能已经定义了另一个对象,它的id属性包含一个value属性,但这不是一个标准的DOM元素。

id在本例中不是元素的id属性,而是表单中名为"id"的字段。

简化如下:

<form>
<input name="id" value="some:page">
<textarea>the editor</textarea>
</form>

dw_linkwiz.textArea是textarea的DOM对象。dw_linkwiz.textArea.form.id.value为"some:page"