小编Jas*_*ing的帖子

TypeScript在Namespace下扩展JQuery

我正在尝试通过TypeScript中的函数扩展默认JQuery接口和默认对象jQuery

/// <reference path="jquery.d.ts" />

namespace MyNameSpace {
    var $ = jQuery;
    export interface JQuery {
        test(options: Object): JQuery;
    }
    $.fn.test = function(options: Object): JQuery {
        if (this.length === 0) {
            console.log('Error!');
            return this;
        }
        console.log(options);
        return this;
    }
    export var testBody = function() {
        jQuery('body').test({ 'HELLO': 'TEST' });
    }
}
Run Code Online (Sandbox Code Playgroud)

问题

现在我在我的控制台中运行以下代码: tsc -m amd -t ES5 Test.ts -d

我收到这个错误: Test.ts(17,19): error TS2339: Property 'test' does not exist on type 'JQuery'.

对此有何解决方案?

javascript jquery namespaces extending typescript

5
推荐指数
1
解决办法
7407
查看次数

jQuery直接选择“父母”,不相似

我得到了一个像这样的固定结构的表:

<table>
    <tr><td class="lvl-0">1</td><tr>
    <tr><td class="lvl-1">2</td><tr>
    <tr><td class="lvl-2">3</td><tr>
    <tr><td class="lvl-2">4</td><tr>
    <tr><td class="lvl-2">5</td><tr>
    <tr><td class="lvl-1">6</td><tr>
    <tr><td class="lvl-2">7</td><tr>
    <tr><td class="lvl-2 selected">8</td><tr>
    <tr><td class="lvl-2">9</td><tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想选择每个等级的父母。这意味着我想从所选内容中选择之前的每个级别。除了类似。这意味着在这个例子中它将是 6 和 1

我用这个尝试过:

var ss = [];
for(var l = lvl; l <= 5; l++){
    ss.push('td.lvl-'+l);
}
var ul = jQuery('table').find(ss.join(',')).closest('tr');
var pa = jQuery('.selected').closest('tr').prevAll('tr').not(ul);
Run Code Online (Sandbox Code Playgroud)

但它也选择数字2

// 编辑

我有一个 jsfiddle http://jsfiddle.net/g7yhwojg/3/选择应该是:

  • 14
  • 13
  • 10
  • 1

javascript jquery html-table

3
推荐指数
1
解决办法
99
查看次数