1

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

好吧,我有一个 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 文件中做错了什么,这不允许我这样做。这有点奇怪,因为我认为两者都以某种方式表示同一件事。

非常感谢您的时间。

4

2 回答 2

0

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

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

于 2013-10-31T10:04:27.960 回答
0

因为你的脚本有问题。
你应该把它写成:

“使用严格”;
$('#data-table').on("click", "th", function(e) {
    e.preventDefault();
    var 值 = $(this).text();
    if(value == "扎卡里·昆图")
        someFunc.showData('数据表', 1);        
});
于 2013-10-31T10:06:53.200 回答