如何将JQuery文本参数作为变量

时间:2016-02-25 01:24:14

标签: jquery parameter-passing jplayer

对于程序JPlayer,我想在jQuery语句的播放列表参数中创建任意数量的{..},{..}。 "最新"变量将具有格式{mp3:filename},{mp3:filename2} ...我似乎无法找到正确的语法来创建" newtest"。

此代码有效:

var filename = "/mymusic/" + mydata[1];
// var newtest = new String('{ mp3: filename }');
script(type='text/javascript').
    //<![CDATA[
    $(document).ready(function() {
        var myPlaylist = new jPlayerPlaylist({
                jPlayer: "#jquery_jplayer_N",
                cssSelectorAncestor: "#jp_container_N"
            },
            [
                // newtest
                {
                    mp3: filename
                }
            ],....

此代码不会创建错误但无法访问我的音乐文件:

var filename = "/mymusic/" + mydata[1];
var newtest = new String('{ mp3: filename }');
script(type='text/javascript').
    //<![CDATA[
    $(document).ready(function() {
        var myPlaylist = new jPlayerPlaylist({
                jPlayer: "#jquery_jplayer_N",
                cssSelectorAncestor: "#jp_container_N"
            },
            [
                newtest
                // {
                // mp3: filename
                //  }
            ],...     

以下两个答案都有效:

var newtest = { mp3: filename };

var myplayList = [
    { mp3: filename1 },
    { mp3: filename2 }
]

由于

2 个答案:

答案 0 :(得分:1)

为什么不以更易读的方式创建值 first ,然后传入数据?

这样,您就可以传递正确的结构。

您的parameter是一个对象。 参数的newtest值实际上是一个集合 - array objects

在下面的代码中,您可以更轻松地查看正在进行的操作:

var params = {
    jPlayer: '#jquery_jplayer_N',
    cssSelectorAncestor: '#jp_container_N'
}

// This is an array of objects
var playList =[
    { mp3: 'filename1' },
    { mp3: 'filename2' },
    { mp3: 'filename3' }
]

var myPlaylist = newjPlayerPlaylist(params, playList);

答案 1 :(得分:0)

解释

看起来您在两个代码块中传递了不同的数据类型。 在第一个代码块中,您传递的数组包含一个对象

[
  // newtest
  {
      mp3: filename
  }
]

在第二个代码块中,newtest是一个字符串,因此您最终传递的数组包含字符串

解决方案

newtest设为var newtest = { mp3: filename };,它应该有效。