Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
通过表jQuery进行解析提供初始值,而不是当前值_Jquery_Json - Fatal编程技术网

通过表jQuery进行解析提供初始值,而不是当前值

通过表jQuery进行解析提供初始值,而不是当前值,jquery,json,Jquery,Json,我有一个非常简单的表结构 <table id="mytable"> <tr> <th>Content</th> <th>Options</th> </tr> <tr> <td class="content"><input type="text" value="my initial value"></td> <td class="option"&

我有一个非常简单的表结构

<table id="mytable">
<tr>
  <th>Content</th>
  <th>Options</th>
</tr>
<tr>
  <td class="content"><input type="text" value="my initial value"></td>
  <td class="option">
  <select>
    <option value="value1" >Value#1</option>
    <option value="value2" >Value#2</option>
    <option value="value3" >Value#3</option>
    </select>
  </td>
</tr>
...
</table>
<input type="button" onclick="javascript:doIt()" value="do it";>
执行:

  • 打开HTML
  • 更改输入字段的值和/或选择中的其他值
  • 点击按钮

我总是以初始值结束,而不是用户更改/键入的值请指出我的错误所在以及如何获取输入字段和选择的最新值。非常感谢

当您只需要
value

试一试


获取html将始终返回呈现时的元素,而不是现在的元素。试试这个

$("#mytable tr").each(function () {
var content = $(this).find(".content input");
var option = $(this).find(".option select");

if (content.length > 0) {
  content = content.val();
  option = option.val();

  var line = {};
  line['content'] = content;
  line['option'] = option;
  json[i] = line;
  i++;
}
});

什么时候调用上面的JS代码。如果你只是在用户做了一些输入后调用它一次,而不是再次调用,这就是TKX zeropublix的原因,但是我可以在输入字段中输入一些东西,并在几分钟后多次触发包含上述JS的方法。每次&每次使用初始值而不是新值时。由于
height=$(height),您必须获取更多代码才能进一步了解它。val()
并没有真正提供sensePlease,因此我们可以查看如何调用此代码。主要问题是,您得到的是元素的html,而不是值。。。一个
没有
html()
完成,我试图保持它的简短非常感谢,但这不起作用。我使用奇怪的
html()
首先获取td值,然后在输入字段的相应选择上使用
val()
$("#mytable tr").each(function (i) {
  // get value not html
  var content = $(this).find(".content").val();
  var option = $(this).find(".option").val();

  if (content ) {    
    var line = {
       content: content,
       option : option
     };    
    json[i] = line;
    // i++; not needed because index is already available in `each`
  }
});
json = JSON.stringify(json);
$("#mytable tr").each(function () {
var content = $(this).find(".content input");
var option = $(this).find(".option select");

if (content.length > 0) {
  content = content.val();
  option = option.val();

  var line = {};
  line['content'] = content;
  line['option'] = option;
  json[i] = line;
  i++;
}
});