javascript – jQuery.val()不适用于标记

前端之家收集整理的这篇文章主要介绍了javascript – jQuery.val()不适用于标记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在输入中输入内容并单击按钮后,“.val()”返回一个空值,任何想法为什么?

HTML代码

<div class="mainClass">
    <div class="class1" >
       <div class="class2">
         <h3>Settings 1</h3>   
        <label>
           <span>Text 1:</span>
           <input type="text" name="text">
        </label>
        <label>
           <span>Text 2:</span>
           <input type="text" name="text2">
        </label>
       </div>
    </div>

    <div class="class3" >
       <div class="class4">
         <h3>Settings 2</h3>   
        <label>
           <span>Text 1:</span>
           <input type="text" name="text">
        </label>
        <label>
           <span>Text 2:</span>
           <input type="text" name="text2">
        </label>
       </div>
    </div>
</div>
 <button id="Go" class="go" >GO </button>

JAVASCRIPT代码

$('#Go').on('click',function() {
    alert($('.class1 input').val());    //return an empty value 
    $('.class1 input').val("test");
    alert($('.class1 input').val());    //return test
});

编辑:

即使这不起作用,这里我只有一个输入,所以我不能输入错误的输入:

<div class="mainClass">
    <div class="class1" >
       <div class="class2">
         <h3>Settings 1</h3>   
        <label>
           <span>Text 1:</span>
           <input type="text" name="text">
        </label>        
       </div>
    </div>
</div>
 <button id="Go" class="go" >GO </button>

编辑2:我发现了问题的开始……

当我这样做时:

$('.class1 input').each(function () {
    alert($(this).attr('name') + "  value:" +$(this).val() );
});

我得到两个这样的“警报”:

text   value:
text   value:myinputText

所以两个在我的HTML中创建了一个,第一个是空的,第二个很好用!
仔细查看我的页面,我发现所有元素都是重复的(< select,field,input ...) 不知道怎么可能?我打电话两次我的html文件
我的所有代码都在弹出窗口中(我不知道它是否可以提供帮助)
(我是Javascript和jQuery的新手)

谢谢

解决方法

匹配’.class1输入’的元素不止一个.你可能没有填写第一组.

the documentation开始:

Get the current value of the first element in the set of matched
elements.

而val(‘text’)填充所有匹配的元素:

Set the value of each element in the set of matched elements

这就是为什么你在第二次警报中看到的东西.

你最好使用更具选择性的选择器.通常我们使用id或名称,如果使用表单将值发送到服务器.

猜你在找的jQuery相关文章