jquery .val()(这里有点不对劲)

时间:2015-09-01 15:14:23

标签: jquery

我有代码:

<input id="arrPathPhotoTop" value = < ? php echo json_encode($arrPathPhotoTop); ?> hidden>

真正的HTML代码是:

<input id="arrPathPhotoTop" value="{&quot;1&quot;:&quot;.\/files\/topface-numbers\/1.jpg&quot;,&quot;2&quot;:&quot;.\/files\/topface-numbers\/2.jpg&quot;}" hidden>

1)控制台输入:$(&#34;#arrPathPhotoTop&#34;)。val(&#34; www&#34;);

输出:

[
<input id="arrPathPhotoTop" value="{&quot;1&quot;:&quot;.\/files\/topface-numbers\/1.jpg&quot;,&quot;2&quot;:&quot;.\/files\/topface-numbers\/2.jpg&quot;}" hidden >
]

2)控制台输入: $(&#34;#arrPathPhotoTop&#34)。VAL();

输出: &#34; WWW&#34;

结果:代码html并不是真的,而是真实的&#34;价值已经改变了。可以吗?

示例img:http://i.stack.imgur.com/Y1hkN.jpg

检查http://jsfiddle.net/nywuctuk/S9mUL/1702/ WTF?

真正的答案是: 隐藏导致类型=&#34;隐藏&#34;

http://jsfiddle.net/nywuctuk/S9mUL/1703/

P.S。网站名称必须更改为&#34;帮助自己&#34; :d

2 个答案:

答案 0 :(得分:1)

Jquery&#39; .val()将在内部更改该元素对象的value属性。这意味着它不会反映HTML的value属性中的这些更改。这是.val()工作原理的自然行为。如果您想使用html字符串获取或设置value attribute,那么您需要使用.attr()

答案 1 :(得分:0)

&#39;价值&#39; tag在加载页面时控制原始值,但之后大部分都不相关;您已正确更新了该值,但不会更改原始HTML。您现在几乎可以忽略HTML指定的初始值。