在jQuery中使用JavaScript变量

在jQuery中使用JavaScript变量,javascript,jquery,variables,Javascript,Jquery,Variables,我有一个普通的JavaScript函数,希望在jQuery代码中也使用变量(myVar)——这可能吗?怎么办 <a onclick="showtitle(abctitle);" href="#">Testlink</a> <script> function showtitle(myVar) { myTitle = myVar; } $(document).ready(function() { alert(myTitle); //I

我有一个普通的JavaScript函数,希望在jQuery代码中也使用变量(myVar)——这可能吗?怎么办

<a onclick="showtitle(abctitle);" href="#">Testlink</a>

<script>
function showtitle(myVar) {
    myTitle = myVar;    
}

$(document).ready(function() {
    alert(myTitle); //I would like to alert "abctitle"
};
</script>

函数showtitle(myVar){
myTitle=myVar;
}
$(文档).ready(函数(){
alert(myTitle);//我想提醒“abctitle”
};

首先,不要将DOM0内联事件处理程序与jQuery混合使用。将标记和逻辑分开

如果使用
data-
属性,则可以将变量的内容放入HTML中,然后在事件处理程序中提取该内容:

<a id="test" data-foo="mytitle" href="#">Testlink</a>

当然,在这段代码中,
警报在实际单击链接之前不会出现。

首先,不要将DOM0内联事件处理程序与jQuery混合使用。将标记和逻辑分开

如果使用
data-
属性,则可以将变量的内容放入HTML中,然后在事件处理程序中提取该内容:

<a id="test" data-foo="mytitle" href="#">Testlink</a>
当然,在此代码中,
警报在实际单击链接之前不会出现。

您可以这样做

function showtitle(abctitle){
  alert(myTitle); //I would like to alert "abctitle"
}
你可以这样做

function showtitle(abctitle){
  alert(myTitle); //I would like to alert "abctitle"
}

我相信@Alnitak有一个很好的答案。但如果你只是想解决你所问的问题,请将abctitle用单引号括起来,并将
myTitle
作为一个全局变量:

<a onclick="showtitle('abctitle 2');" href="#">Testlink</a>

<script>
myTitle = "abctitle";

function showtitle(myVar) {
    myTitle = myVar;    
}

$(document).ready(function() {
    alert(myTitle); //I would like to alert "abctitle"
});
</script>

myTitle=“abctitle”;
函数showtitle(myVar){
myTitle=myVar;
}
$(文档).ready(函数(){
alert(myTitle);//我想提醒“abctitle”
});
另外,您的document ready函数缺少右括号

此处的工作示例:

更新

在JSFIDLE上工作的示例并没有那么好地工作。试试这个:


JS Bin示例还在showtitle函数中添加了
警报
调用。

我相信@Alnitak有一个很好的答案。但是,如果您只是想解决您提出的问题,请将abctitle用单引号括起来,并将
myTitle
作为全局变量:

<a onclick="showtitle('abctitle 2');" href="#">Testlink</a>

<script>
myTitle = "abctitle";

function showtitle(myVar) {
    myTitle = myVar;    
}

$(document).ready(function() {
    alert(myTitle); //I would like to alert "abctitle"
});
</script>

myTitle=“abctitle”;
函数showtitle(myVar){
myTitle=myVar;
}
$(文档).ready(函数(){
alert(myTitle);//我想提醒“abctitle”
});
另外,您的document ready函数缺少右括号

此处的工作示例:

更新

在JSFIDLE上工作的示例并没有那么好地工作。试试这个:



JS Bin示例还在showtitle函数中添加了
alert
调用。

这是什么我不知道为什么HTML代码中会有这个变量?如何在页面加载时不单击a@Sarfaraz根据当前代码,他不能认为他必须首先改进代码这是什么我甚至不知道为什么HTML代码中有这个变量?你如何在页面加载时不点击我的标题a@Sarfaraz根据当前代码,他不认为他必须首先改进代码,正如我对MattyMo所做的评论一样-document.ready处理程序将在调用
onclick
处理程序之前自动调用(而
myTitle
仍未定义)。Uncaught ReferenceError:showthile未定义(onclick on link)我也知道,在本地,它可以在一个新的html文件中工作……可能是JSFIDLE和我声明fx的方式有问题?@shanabus这是因为JSFIDLE已经自动将您的代码包装在一个
onload
处理程序中,防止
showtitle
成为一个全局变量(这是DOM0内联事件处理程序所要求的)。与我对MattyMo所做的评论相同-在调用
onclick
处理程序之前,document.ready处理程序将自动被调用(而
myTitle
仍未定义)。未捕获引用错误:未定义showtitle(onclick on link)我也得到了这一点,在本地,它可以在一个新的html文件中工作……可能是JSFIDLE和我声明fx的方式有问题?@shanabus这是因为JSFIDLE已经自动将您的代码包装在一个
onload
处理程序中,防止
showtitle
成为一个全局变量(这是DOM0内联事件处理程序所要求的)。这看起来不错,但是如果可能的话,我真的希望showtTitle()函数在jQuery之外@马克:为什么-你真正想要实现什么?“外部jQuery”是什么意思?jQuery仍然只是javascript。因为我从panorama播放器启动showtitle()-函数,而这个函数需要普通的javascript函数:然后您需要展开您的问题。您现有的代码没有任何意义-您不能期望
document.ready
处理程序能够访问一个变量,该变量在您单击链接后才能设置!这看起来不错,但是如果可能的话,我真的希望showttitle()函数在jQuery之外@马克:为什么-你真正想要实现什么?“外部jQuery”是什么意思?jQuery仍然只是javascript。因为我从panorama播放器启动showtitle()-函数,而这个函数需要普通的javascript函数:然后您需要展开您的问题。您现有的代码没有任何意义-您不能期望
document.ready
处理程序能够访问一个变量,该变量在您单击链接后才能设置!