Javascript 特定按钮类onClick之前的某些字段的值未定义?
本想测试类似的内容,以获取重复更新按钮单击之前的字段值,但它会在浏览器控制台中记录Javascript 特定按钮类onClick之前的某些字段的值未定义?,javascript,jquery,html,ajax,jquery-traversing,Javascript,Jquery,Html,Ajax,Jquery Traversing,本想测试类似的内容,以获取重复更新按钮单击之前的字段值,但它会在浏览器控制台中记录undefined值 var $prevID = $(this).prevAll('.UpdateStory').first(".storyID"); var $prevStory = $(this).prevAll('.UpdateStory').first(".currentStory"); var id = $prevID.val(); var story = $prevStory.val(); 下面是H
undefined
值
var $prevID = $(this).prevAll('.UpdateStory').first(".storyID");
var $prevStory = $(this).prevAll('.UpdateStory').first(".currentStory");
var id = $prevID.val();
var story = $prevStory.val();
下面是HTML(客户端+服务器端handlebar.js)
应该是:
var group = $(this).closest(".input-group-addon");
var id = group.prevAll(".storyID").val();
var story = group.prevAll(".currentStory").val();
.prev()
不会做你认为它会做的事.storyID
不是.updatestore
之前的元素。请使用.prevAll()
,就像这里的解决方案一样:@Barmar这很有意义,谢谢。。但这仍然是未定义的日志。。还有其他建议吗?@Barmar根据你的评论更新了帖子。太好了!非常欣赏对于复选框等价物,jquery是什么<代码>如果(group.prevAll(“.archiveCheck”).is(“:checked”){var archiveCheck='archived';}似乎不起作用..对于html:
,在跨度之后有复选框prevAll
只查找跨度之前的东西。使用nextAll
来照顾,或使用兄弟姐妹
来处理两个方向。非常感谢您花时间来处理此问题。。快开始工作了?
// UpdateStory button clicks
$(".allStories").on('click','.UpdateStory',function(e) {
e.preventDefault();
console.log('UpdateStory clicked');
// story elements for API that work for only the first item,
// regardless of whichever UpdateStory button is clicked
var id = $( ".storyID" ).val();
var story = $( ".currentStory" ).val();
console.log(id);
console.log(story);
var AjaxPostData = {
id : id,
story : story
};
// if the story field has content
if (story.length != 0) {
console.log('there is a story: ' + story);
// make an ajax call
$.ajax({
dataType: 'json',
data: AjaxPostData,
type: 'put',
url:"http://localhost:4200/api/v1/stories/" + id,
success: refreshNewStories,
error: foundAllNewFailure
});
};
}); // UPDATE
var group = $(this).closest(".input-group-addon");
var id = group.prevAll(".storyID").val();
var story = group.prevAll(".currentStory").val();