如何将 JQuery 文本参数作为变量传递
How do I pass JQuery text parameter as a variable
对于程序 JPlayer,我想在 jQuery 语句的播放列表参数中创建任意数量的 {..},{..}。 "newtest" 变量的格式为 {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 }
]
谢谢
为什么不先以更易读的方式创建值,然后再传入数据?
这样,您就可以传递正确的结构。
您的 parameter
是一个对象。
您的参数的 newtest
值实际上是一个集合 - objects
的 array
。
在下面的代码中,更容易看出是怎么回事:
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);
说明
您似乎在两个代码块中传递了不同的数据类型。
在您的第一个代码块中,您传递了一个包含单个 object:
的数组
[
// newtest
{
mp3: filename
}
]
在第二个代码块中,newtest
是一个字符串,因此您最终传递了一个包含 string.
的数组
解决方案
将 newtest
设置为 var newtest = { mp3: filename };
应该可以。
对于程序 JPlayer,我想在 jQuery 语句的播放列表参数中创建任意数量的 {..},{..}。 "newtest" 变量的格式为 {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 }
]
谢谢
为什么不先以更易读的方式创建值,然后再传入数据?
这样,您就可以传递正确的结构。
您的 parameter
是一个对象。
您的参数的 newtest
值实际上是一个集合 - objects
的 array
。
在下面的代码中,更容易看出是怎么回事:
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);
说明
您似乎在两个代码块中传递了不同的数据类型。 在您的第一个代码块中,您传递了一个包含单个 object:
的数组[
// newtest
{
mp3: filename
}
]
在第二个代码块中,newtest
是一个字符串,因此您最终传递了一个包含 string.
解决方案
将 newtest
设置为 var newtest = { mp3: filename };
应该可以。