Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 特定按钮类onClick之前的某些字段的值未定义?_Javascript_Jquery_Html_Ajax_Jquery Traversing - Fatal编程技术网

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();