相关疑难解决方法(0)

Javascript相当于PHP的$$ varName

可能重复:
如何通过串联创建另一个变量来访问javascript变量值?

在PHP中,我可以:

$theVariable = "bigToe";
$bigToe = "is broken";
Run Code Online (Sandbox Code Playgroud)

这样:

echo "my ".$theVariable." ".$$theVariable;
Run Code Online (Sandbox Code Playgroud)

会显示

my bigToe is broken
Run Code Online (Sandbox Code Playgroud)

我将如何进行与JavaScript类似的操作?

javascript php variable-variables

6
推荐指数
2
解决办法
502
查看次数

如何动态调用JavaScript对象的方法

我想我在这里错过了一些非常简单的东西.我想传递一个函数一个对象和方法来调用.这篇文章的原因太长了.:-)

var myObj = new someObject();
var funcName = "hide";

function callObject(myObj,funcName){
    obj.hide(); //this works     
    obj[funcName]; //doesn't work
    obj.eval(funcName); //doesn't work either.. tried many variations
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript eval

6
推荐指数
1
解决办法
6641
查看次数

如何将带有数组的字符串转换为数组

如何将此响应转换为有效数组?
我想对Object.map数据执行:

var user_roles = "['store_owner', 'super_admin']";
Run Code Online (Sandbox Code Playgroud)

这不是有效的JSON,所以我无法使用 JSON.parse

javascript json

6
推荐指数
1
解决办法
192
查看次数

将 JS 变量名传递给函数

所以这就是我想要做的:

  1. 我的变量命名data_1已设置。

    var data_1 = {
      "y_legend": {
        "text": "# of Patients",
        "style": "{font-size: 20px; color: #778877}"
      },
      "x_legend": {
        "text": "AUG 09 - OCT 09",
        "style": "{font-size: 20px; color: #778877}"
      }
    };
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在下拉列表中,用户选择具有data_1该调用值的选项load('data_1')

    function load(data)
    {
      tmp = findSWF("my_chart");
      x = tmp.load( JSON.stringify(data) );
    }
    
    Run Code Online (Sandbox Code Playgroud)

我的问题:我选择了一个带有值的选项,data_1而不是变量本身。所以在我的函数中load('data_1'),当alert(data)我得到data = 'data_1'.

那么如何data_1通过只传递字符串的名称来获取加载函数中变量的内容呢?

javascript variables json

5
推荐指数
2
解决办法
8183
查看次数

Jquery - 将字符串视为变量名

这是我缩短的脚本:

var string1 = "This is string 1";
var string2 = "This is string 2";

function test() {
    var selectedOption = $("select#myoptions option:selected").attr("id");
    var str = 'string'+selectedOption;
    $("div#result").html(str);  
}
$("select#myoptions").change(test);
Run Code Online (Sandbox Code Playgroud)

我有一个下拉列表,每个选项都有一个整数id.选择此下拉列表时,我希望jQuery获取所选选项的id,并显示最后具有所选id的字符串变量的内容.

如果选择了ID为"1"的选项,将显示"This is string 1",...

但我现在得到的是显示文本"string1"而不是文本"This is string 1".

我需要一些帮助.非常感谢!

jquery

5
推荐指数
1
解决办法
8029
查看次数

是否可以使用字符串从对象调用方法?

是否可以使用字符串从对象调用方法?

var elem = $('#test');             //<div id="test"></div>
var str = "attr('id')";  

//This is what I'm trying to achieve
  elem.attr('id');                 //test

//What I've tried so far  
  elem.str;                        //undefined
  elem.str();                      //Object [object Object] has no method 'str'
  var fn = eval(str);              //attr is not defined
  eval(elem.toString()+'.'+str);   //Unexpected identifier

//Only solution I've found so far, 
//but is not an option for me 
//because this code is in a function 
//so the element and method call
//get passed in and I wouldn't know
//what …
Run Code Online (Sandbox Code Playgroud)

javascript string methods jquery eval

5
推荐指数
1
解决办法
232
查看次数

如何通过JSON传递函数名称并在javascript/jQuery中调用它?

我有一个JSON字符串,其中包含我需要调用的函数.

我的JSON看起来像这样:

{  
    "type":"listview",
    // the function I would like to call
    "content":"dynoData.getRetailers()",
    "custom_classes":["","nMT pickList","",""],
    "lib":"static_listview.html",
    "tmp":"tmp_listview_inset",
    "lang":"locale_search",
    ...
Run Code Online (Sandbox Code Playgroud)

我正在使用它在客户端上组装jQuery Mobile列表视图.要获取动态数据,我需要调用dynoData.getRetailers().

但是我很难打电话:-)

这就是我正在尝试的:

var dyn = $.parseJSON( passed_JSON_string ),
    content = dyn.content;
Run Code Online (Sandbox Code Playgroud)

我希望调用它会触发函数,但它只是将函数名称作为字符串返回.

问题:
如何触发实际功能?

谢谢!

编辑:
我将JSON字符串放在实际页面上的HTML元素上,我将替换为我正在构建的元素.这是HTML:

<ul data-template="true" data-config='{  
    "type":"listview",
    "content":"dynoData.getRetailers()",
    "custom_classes":["","nMT pickList","",""],
    "lib":"static_listview.html",
    "tmp":"tmp_listview_inset",
    "lang":"locale_search",
    "theme":"c",
    "filter":"true"
    }'></ul>
Run Code Online (Sandbox Code Playgroud)

我可以把所有这些都归入data-属性,但那会很混乱......

解决方案:这有效:

1)将JSON更改为:

..."method":"getRetailers", ...
Run Code Online (Sandbox Code Playgroud)

2)从Javascript调用:

content = dynoData[ dyn.method ]();
Run Code Online (Sandbox Code Playgroud)

感谢大家!

javascript parameters jquery triggers function

5
推荐指数
1
解决办法
8171
查看次数

手动使用预编译的车把模板

如何手动使用预编译的handlebars.js模板?

比方说,我们有

source = "<p>Hello, my name is {{name}}</p>"
data = { name: "Joe" }
Run Code Online (Sandbox Code Playgroud)

目前,我有

template = Handlebars.compile(source)
render: -> template(data)
Run Code Online (Sandbox Code Playgroud)

源来自数据库,为了减少编译时间,我想使用一个编译步骤,先使用来对模板服务器端进行预编译Handlebars.precompile(source),然后再使用类似的方法:

template = precompiled_template
render: -> precompiled_template(data)
Run Code Online (Sandbox Code Playgroud)

precompiled_template是带有函数定义的字符串,因此不起作用。

另外,我还发现了Hanlebars.compile(source)() == Handlebars.precompile(source),但是在浏览了把手的源代码,即编译器和运行时之后,我仍然不确定如何实现这一点。

handlebars.js

5
推荐指数
1
解决办法
6763
查看次数

javascript eval真的是那么大的安全威胁吗?

假设没有可用于修改某人计算机的浏览器端安全漏洞,我不明白使用如何eval导致任何真正的威胁.

有人可以解释这是怎么可能的.有人可以在用户的​​计算机上显示某些内容,但如果没有重定向或接受下载,则无法实现真正​​的伤害.不会造成服务器端损坏,对吗?

javascript eval

5
推荐指数
1
解决办法
508
查看次数

通过属性传递属性/对象。Javascript

有没有办法通过属性传递数组或对象?喜欢:

<div id="myelem" myattr="{ title: 'hello', author: 'mike'}, { title: 'world', author: 'hellen'}, {...}"/>
Run Code Online (Sandbox Code Playgroud)

我只是使用 javascript 尝试过这个,但只返回了第一个对象,我想要这样的东西:

for(let i=0; i<this.myattr.length; i++){
  console.log(this.myattr.title);
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢

html javascript attributes object polymer

5
推荐指数
1
解决办法
1万
查看次数