使用Javascript从json值获取HTML元素值

时间:2018-10-31 01:44:51

标签: javascript html

我有使用JSON.stingrify转换的对象

//get prod id
if(isset($_GET['prod_id']) && !empty($_GET['prod_id']))
  {
          $prod_code = $_GET['prod_id'];
          $newqty = $_GET['qty'];

我想从上方获取“ cropped_two ”(已打开)

onchange = \“ alertFilename(this.value,' cropped_two ');

此处 this.value 将保持不变,因此如果要拆分字符串。

我通过循环和其他方法尝试了多种方法,但徒劳无功。

任何人都可以帮忙吗? 预先感谢。

4 个答案:

答案 0 :(得分:1)

我认为您只想要字符串?我想这会起作用。

let o = {
  "_originalElementInner": "            <input type=\"file\" name=\"\" class=\"hidden\" id=\"file_input_two\" onchange=\"alertFilename(this.value,'cropped_two');\">                           <!-- <img src=\"https://dxyz.com/tmp/5bd432ed2d8dd_img3.jpg\" alt=\"\" width=\"100%\" height=\"100%\"> -->                                         "
};
const regex = /,(.*)\);/gm;
const match = regex.exec(o._originalElementInner);
console.log(match[1]);

答案 1 :(得分:0)

您可以使用搜索功能找到“ this.value”位置,然后使用子字符串功能,从“ this.value”位置+ 11到“)”位置,女巫似乎是字符串中唯一的“)”

答案 2 :(得分:0)

如果可以使用jQuery,则可以采用这种方法。

var obj = {"_originalElementInner": "            <input type=\"file\" name=\"\" class=\"hidden\" id=\"file_input_two\" onchange=\"alertFilename(this.value,'cropped_two');\">                           <!-- <img src=\"https://dxyz.com/tmp/5bd432ed2d8dd_img3.jpg\" alt=\"\" width=\"100%\" height=\"100%\"> -->                                 "},
    stringValue = '',
    // This function will be called when the event change is triggered.
    alertFilename = function(_, str) { stringValue = str;};

// Create the jQuery object and trigger the event change
// Finally remove the function from window object (This is just to remove an unsed function after execute it).
$(obj['_originalElementInner']).trigger('change'), (delete window['alertFilename']);

console.log(stringValue);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 3 :(得分:0)

如果您的代码中可能有多个onchange回调,则以下代码将获得引用alertFilename的代码,它也比regexp快。

function extractSecondArg(text) {
  // Define the pattern to look for.
  const pattern = 'onchange=\"alertFilename(this.value,'

  // Find the index of the pattern.
  const patternIndex = text.indexOf(pattern);

  if (patternIndex !== -1) {
    // Find the closing parenthesis.
    const patternEnd = ');';
    const patternEndIndex = text.indexOf(patternEnd, patternIndex);

    // Extract the second argument of the function.
    return text.substring(patternIndex + pattern.length, patternEndIndex).replace(/["']+/g, '');
  }
}

这里是使用方法的示例。

const json = {
  "_originalElementInner": "            <input type=\"file\" name=\"\" class=\"hidden\" id=\"file_input_two\" onchange=\"alertFilename(this.value,'cropped_two');\">                           <!-- <img src=\"https://dxyz.com/tmp/5bd432ed2d8dd_img3.jpg\" alt=\"\" width=\"100%\" height=\"100%\"> -->                                         "
};

// Extract element to search in.
const secondArg = extractSecondArg(json['_originalElementInner']);
console.log(secondArg)