我正在尝试从input.val()
元素申请text
span
,但当我尝试在console
中检查时,我无法获得它。< / p>
$("#sandbox-container span").on("click", function(e) {
$("#sandbox-container span").removeClass("selected_year");
$(this).attr("class", "selected_year");
var dateSelected = $(".selected_year").text();
var dateCat = $(".time_value").val(dateSelected);
console.log(dateSelected);
console.log(dateCat);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sandbox-container">
<span class="selected_year">2014</span>
<span>2018</span>
</div>
<input label="null" style="display: none;" class="time_value" maxlength="99" name="usp-category" type="text" value="">
上面给了我:
2014
(index):208 r.fn.init [prevObject: r.fn.init(1)]
虽然我希望console.log(dateCat);
能够给我2014
答案 0 :(得分:3)
当你将一个值传递给函数时,你设置的元素的值没有获得它,jQuery方法遵循一个链接模式,所以它们实际上返回元素本身,所以如果你想设置一个值然后检索它:
var dateCat = $(".usp-input-category").val(dateSelected);
console.log(dateCat.val())
正如你所知,类选择器即$(".usp-input-category")
返回一个数组。因此,在数组的构造函数中使用值运行.val
将更改具有此类的所有元素的值。
当构造函数为空时,.val
函数将返回元素的值,其中当使用值调用构造函数时,它将返回元素本身。
值得注意的是.val()
,.text()
之间的区别,因为后者可能是你应该看的功能。
.val
获取/设置输入元素的值.text
获取/设置元素的innerText 答案 1 :(得分:0)
如果在没有参数的情况下调用.val()方法,则该函数返回<input>
(或<select>
或<textarea>
)元素的当前值。如果该方法用于设置值,则将返回匹配元素的集合。
所以,你应该使用
console.log(dateCat.val());
或
var dateCat = $(".time_value").val(dateSelected).val();
console.log(dateCat);
显示新值。
答案 2 :(得分:0)
如果你给一个带有'usp-input-category'类的元素,你就会得到这个值。
$("#sandbox-container span").on("click", function(e) {
$("#sandbox-container span").removeClass("selected_year");
$(this).attr("class", "selected_year");
var dateSelected = $(".selected_year").text();
var dateCat = $(".usp-input-category").val(dateSelected);
console.log(dateSelected);
console.log(dateCat.val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sandbox-container">
<span class="selected_year">2014</span>
<span>2018</span>
</div>
<input class="usp-input-category"/>
答案 3 :(得分:0)
您正在使用jQuery .val(value)
设置元素的值。这不会返回您设置的值。您可以查看documentation。
您可以使用$(".usp-input-category").val();
检索该值。
逻辑在这里没有多大意义。但是,由于您坚持遵循这一逻辑,您可能会这样做:
var dateSelected = $(".selected_year").text();
$(".usp-input-category").val(dateSelected);
var dateCat = $(".usp-input-category").val();
这应该能给你正确的答案。
有关您获得的r.fn.init [prevObject: r.fn.init(1)]
输出的说明,可以参考this SO question and answer.