2012-07-06 70 views
0

这真的令人沮丧。我一直使用.val()像这样,但现在它不起作用。为什么我不能在jQuery中选择我的值?

我正在使用jQuery v1.7.2。

我有一个facebox框,我用一个隐藏值启动,所以我知道在facebox完成时我应该在主页上更改哪些值。

我有这样的HTML代码:

<hidden type="hidden" value="hello" id="testid" name="testname" />

而在jQuery的我已经登录:

console.log($('[name="testname"]')); 
console.log($('#testid')); 
console.log($('#testid').val()); 
console.log($('[name="testname"]').val()); 

而这种输出:

[<hidden type=​"hidden" value=​"hello" id=​"testid" name=​"testname">​</hidden>​] 
[<hidden type=​"hidden" value=​"hello" id=​"testid" name=​"testname">​</hidden>​] 
(empty line) 
(empty line) 

那么为什么不能我访问这个值?

我正在使用facebox与AJAX,我知道,如果我使用facebox与div它将复制dom元素,这样我得到两个相同的ID,但这不应该与AJAX发生?而且,我还会在前两行返回更多元素,对不对? 一件奇怪的事是,如果我检查我看到输入框已更改为在Chrome中的元素:

<hidden type="hidden" value="hello" id="testid" name="testname"></hidden> 

但也许这并不重要?

回答

5

没有元素隐藏。你的意思是<input type="hidden">

如果你真的想使用自定义的元素,我相信你将不得不使用的方法.prop()

console.log($('#testid').prop("value")); 
+0

谢谢! 这不是我的意图,我想要输入类型,但主演自己瞎了其他事情,所以我没有看到明显的错误:)非常感谢! – netigger 2012-07-06 07:09:35

+0

@DavidEverlöf这是一个简单的错误,很高兴帮助! – 2012-07-06 07:10:52

2

有HTML中没有<hidden>元素,使jQuery的不具备所需的特殊处理以支持其方法val()

你想要<input>。通过一个自动的validator来运行你的HTML通常是一个好主意,它可以选择这种类型的错误。

(你也可以使用attr('value')但编写有效的HTML是一个更好的主意)

相关问题