javascript - javascript .data() 通过空格剪切字符串内容
问题描述
所以,我有这个问题,我在 web 应用程序中有一个后退按钮。这是按钮的 javascript 代码:
function getPrevFunction()
{
localDBSelect("prevViews", function (prevViews)
{
if (prevViews)
{
var prevViewObject = $.parseJSON(prevViews);
var prevViewArray = prevViewObject['funcObjects'];
if (prevViewArray.length > 1)
{
var prevArrayIndex = prevViewArray.length - 2;
var actArrayIndex = prevViewArray.length - 1;
var prevFuncObject = prevViewArray[prevArrayIndex];
var prevFunc = prevFuncObject['function'];
var prevConfig = prevFuncObject['config'];
var inData = prevFuncObject['inData'];
prevViewArray.splice(actArrayIndex, 1);
if (inData !== "")
{
if (prevFunc !== "getGuiSiteList")
{
inData = "<div data-param=" + JSON.stringify(inData) + ">";
}
$('#fieldcontain')[prevFunc](inData, prevConfig);
}
else {
$('#fieldcontain')[prevFunc](prevConfig);
}
if (prevViewArray.length === 1)
{
setVisibilityForBackBtn(false); //If last..
}
prevViewObject['funcObjects'] = prevViewArray;
localDBInsert("prevViews", JSON.stringify(prevViewObject));
}
else {
setVisibilityForBackBtn(false);
}
$('#subcontainer').html("");
if(!$('#fieldcontain').is(":visible"))
{
$('#fieldcontain').show();
}
}
});
}
我的问题是我并不总是得到 json-object 的全部内容。例如; json,一开始它看起来像这样:
input = {site: "GAV", location: "EG", set: "INVENTORY", binnum: "B01 T09"}
但是在我尝试使用像这样的html元素获取作为数据/属性传递的json之后:
var input = $(inData).data("param");
我收到的值如下所示:
input = "{"site":"GAV","location":"EG","set":"INVENTORY","binnum":"B01"
正如你所看到的,它由于某种原因切断了空格之后的所有字符,尽管在最后一个函数被添加到列表中,然后再次调用该函数,也能够在应用。
我确实意识到我的解释很混乱,可能很难理解,但这是我能解释的最好的。如有必要,我可以提供更多代码。
所以,我确实需要getPrevFunction的整个json(它作为“prevViews”传递)
解决方案
使用如下encodeURIComponent()
_decodeURIComponent()
设置数据
inData = "<div data-param=" + encodeURIComponent(JSON.stringify(inData)) + ">";
获取数据
var input = JSON.parse(decodeURIComponent($(testDv).data('param')));
现在,由于空格,对象中将没有切割。
推荐阅读
- c# - 禁用特定的 C# 9 源代码生成器
- google-sheets - 在 Google 表格中的一系列值之间动态查找一个值
- reactjs - 如何在这个简单的选择中获取选定的值
- python - 共线特征及其对线性模型的影响,任务:1 Logistic Regression
- python - 按索引组合列表和嵌套列表
- javascript - 每天根据 JavaScript 结果更新数据库中的年龄列
- r - geom_col 显示不正确的值数
- ms-access - MS Access - 级联第二个组合框不级联
- python - 如何捕获登录 Linux 的用户鼠标点击?
- python - 有没有办法在单击时更改迭代创建的按钮的图像?