Javascript在href中工作,但在JS文件中不起作用

时间:2013-10-31 09:57:07

标签: javascript jquery html href

希望大家都好。好吧,我有一个奇怪的问题,我缺少或无法理解。希望这里有人可以帮助我。好吧,

我有一个html页面,我已经定义了一个带有几个硬编码值的表,如下所示,

<table id='data-table' class='someClass'>
    <thead>
        <tr>
            <th id="name-title">NAME</th>
        </tr>
    </thead>
    <tbody>
        <tr class="odd"><th class='c1'>Zachary Quinto</th></tr>
        <tr class="even"><th class='c1'>Penny</th></tr>
        <tr class="odd"><th class='c1'>Glen McGrath</th></tr>
    </tbody>
</table>

现在我有一个javascript文件,在代码的某处(使用jQuery),我这样做,

$('#data-table').click(function() {
    var value = $(this).find("th.c1").text();
    if(value == "Zachary Quinto")
        someFunc.showData('data-table', 1);        
});

由于某些原因,这不起作用,它覆盖了这个功能,我没有看到任何变化/影响。但令我惊讶的是,如果将数据封装到标签中,它似乎可行。 (通过封装,我的意思是下面的内容)

<tr class="odd"><th class='c1'><a href="javascript:someFunc.showData('data-table', 1);">Zachary Quinto</a></th></tr>
<tr class="even"><th class='c1'><a href="javascript:someFunc.showData('data-table', 2);">Penny</a></th></tr>
<tr class="odd"><th class='c1'><a href="javascript:someFunc.showData('data-table', 3);">Glen McGrath</a></th></tr>

任何人都可以帮助我这个,我不确定我在Javascript文件中做错了什么,这让我不能这样做。这有点奇怪,因为我认为两者都是这样或那样的。

非常感谢你的时间。

2 个答案:

答案 0 :(得分:0)

jQuery的text函数返回所有匹配元素的组合文本。在您的情况下,有三个th.c1个匹配项,因此text()函数会返回Zachary QuintoPennyGlen McGrath

您可以通过在调试器中的事件处理程序上抛出断点来看到这一点。

答案 1 :(得分:0)

因为您的脚本出了问题 你应该把它写成:

"use strict";
$('#data-table').on("click", "th", function(e) {
    e.preventDefault();
    var value = $(this).text();
    if(value == "Zachary Quinto")
        someFunc.showData('data-table', 1);        
});