小编Set*_*gie的帖子

替换XML问题

在检查了jQuery源代码之后,我发现我遇到的问题是因为XML文档不存在的replaceWith调用html.是replaceWith不是应该在XML文档上工作?

我发现这个公认的简单解决方法,以防将来有人需要它,这将完成我正在尝试做的事情:

xml.find('b').each(function() {
    $(this).replaceWith($('<c>yo</c>')) // this way you can custom taylor the XML based on each node's attributes and such
});
Run Code Online (Sandbox Code Playgroud)

但我仍然想知道为什么简单的方法不起作用.


我对jQuery了解不多,但不应该这样吗?

xml = $.parseXML('<a><b>hey</b></a>')
$(xml).find('b').replaceWith('<c>yo</c>')
Run Code Online (Sandbox Code Playgroud)

而不是xml代表<a><c>yo</c></a>它失败和代表<a></a>.我做错什么了吗?我正在使用jQuery 1.6.2.

编辑:

作为旁注,如果我尝试使用函数版本replaceWith,如下:

$(xml).find('b').replaceWith(function() {
    return '<c>yo</c>' // doesn't matter what I return here
})
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

TypeError: Cannot call method 'replace' of undefined
Run Code Online (Sandbox Code Playgroud)

编辑2:

replaceAll 然而,但我需要使用函数版本,所以我不能满足于此:

$('<c>yo</c>').replaceAll($(xml).find('b')) // works
Run Code Online (Sandbox Code Playgroud)

编辑3:

这也有效:

xml.find('b').replaceWith($('<c>yo</c>')) // but not with the …
Run Code Online (Sandbox Code Playgroud)

javascript xml jquery replacewith

6
推荐指数
1
解决办法
615
查看次数

tr上的盒子阴影

我在把桌子放在桌子box-shadow上时遇到了问题tr.问题是,box-shadow除非表中display的所有trs都设置为block(我在此处找到'修复':TR标记内的Box Shadow),否则根本不显示.然而,当displaytrs被设定block,它使表格单元格不再排队,拥挤所有左侧.

这是一个演示问题的小提琴:http://jsfiddle.net/jFdEY/

您可以尝试更改它以应用于所有trs,但这会导致另一个问题(在下面的第二张图片中).


这是一些图片:

没有display: block所有trs的表(表格显示正常但box-shadow不起作用) 在此输入图像描述

在一个 display: block所有的trS(box-shadow显示出来,但表格的布局被打破) 在此输入图像描述

那么,有没有办法解决这个问题呢?

html css css3

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

发送任意(原始)数据包

我已经看到它在其他地方问了但是没有人满意地回答:我怎样才能接收和发送原始数据包?

通过"原始数据包",我的意思是,我必须生成所有头和数据,使字节完全是任意的,而且我不以任何方式限制.这就是为什么Microsofts RAW套接字无法工作的原因,因为您无法发送具有错误源地址的TCP或UDP数据包.

我知道您可以使用WinPCAP发送我想要的数据包,但是您无法使用它接收原始信息,我也需要这样做.

c++ networking packets windows-7

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

构造函数的巨型switch语句

我有一个容器,它包含一堆指向基类的指针,以及一个接受一些输入并返回一个类的函数,该类是基类的子类.它返回的子类取决于输入.

现在,我有一个像这样的巨型开关语句:

class Base { ... }

class A : public Base { ... }
class B : public Base { ... }
...
class Z : public Base { ... }

Base* depends(int input) {
    switch (input) {
    case 1:
        return new A(...);
    case 2:
        return new B(...);
    ...
    case 26:
        return new Z(...);
    default:
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来设计它.我不知道很多"设计模式"(我认为这就是他们所谓的)所以我不知道是否有一种(明显的)更好的方法来设计它.

c++ inheritance construction class-hierarchy switch-statement

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

获取函数的 AST

假设我有一个功能:

function hi()
    print('hi')
end
Run Code Online (Sandbox Code Playgroud)

我希望能够将此函数作为参数并对其进行分析,例如列出其中的所有函数调用,查看它引用的所有变量等。

请注意,我不是在谈论分析源代码;而是在谈论分析源代码。我没有函数的源文本,我只有函数对象,即这是在运行时完成的。

我认为你这样做的方法是获取函数的 AST。但我不知道该怎么做。那么我该如何获取函数的 AST(或者如果有更好的方法则对其进行分析)?

lua analysis function abstract-syntax-tree decompiler

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

如何在最小化窗口后最大化窗口

如何在最小化窗口后最大化窗口?我用nCmdShow = 3它来最大化它并使用它nCmdShow = 6来最小化它ShowWindow(hwnd, nCmdShow).但是,一旦我最小化窗口,我无法恢复或最大化它.

这是因为我无法存储最小化窗口的处理程序,以便在某些条件下可以最大化同一窗口?我如何实现同样的目标?

c++ windows winapi

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

当函数中的静态变量的构造函数异常终止时会发生什么?

我有一个功能,可以减少到这个:

void f() {
    static MyObject o("hello");

    DoSomethingWith(o);
}
Run Code Online (Sandbox Code Playgroud)

这个函数是在一个C API边界上调用的,所以就像一个好孩子一样,我用它try来捕获任何在越过边界之前抛出的异常并搞砸了:

void f() {
    try {
        static MyObject o("hello");

        DoSomethingWith(o);
    } catch (const MyObjectException& e) {
        Message("Constructor of o failed");
    }
}
Run Code Online (Sandbox Code Playgroud)

第一次调用此函数,我收到消息"Constructor of o failed".但是,稍后,再次调用该函数,我再次收到该消息.我收到的消息多次f被称为.我正在使用Visual C++,所以这告诉我MSVC++的功能,但不是应该做什么.

我的问题是,当的构造会发生什么static功能的可调异常终止(由throw荷兰国际集团,一longjmp出构造的,终止线程,它是在等)?static在它之前和之后声明的任何其他变量应该发生什么?我也很感谢标准中的任何相关引用.

c++ static initialization exception

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

C#指针,迭代器和泛型

我非常难过

如何在C#中使用迭代器,就像C++迭代器一样?我找不到Begin()或End()访问器,我甚至无法找到如何声明迭代器.我读过有关Ienumerator的文章.我的目标是实现合并功能.这是我用C++编写的Merge函数的一部分.大多数情况下,我正在寻找所显示内容的C#等价物,除了我将使用引用类型而不是整数.

void merge(vector<int>::iterator left, vector<int>::iterator right, vector<int>::iterator      leftEnd, vector<int>::iterator rightEnd, vector<int>::iterator full)
{

    while(left != leftEnd && right!= rightEnd) //compare left and right until the end of the vector is reached
    {
        if(*right < *left)      //right < left so insert right to the output vector and advance the iterators
        {
            *full++ = *right++;
        }
        else                   //left < right so insert left to the output vector and advance the iterators
        {
            *full++ = *left++;
        }
    }

    while(left != leftEnd)    //copy …
Run Code Online (Sandbox Code Playgroud)

c# c++ generics collections iterator

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

WM_EX_TRANSPARENT不重绘子窗口

WM_EX_TRANSPARENT在一些窗口上使用窗口样式,尝试使用透明度进行双缓冲.但是,我遇到了问题,因为当我InvalidateRect在父窗口上进行操作时,子窗口不会被重绘.

父窗口是否有责任迭代子窗口并让它们重新绘制自己,或者我做错了什么?如果它是父窗口的责任,我怎样才能获得父窗口无效矩形内的所有子窗口?

这是一个完全可编辑的例子,说明了我正在谈论的行为.将鼠标移到父窗口上时,可以看到该按钮消失.如果单击它,该按钮会自动重绘,但当您将鼠标移开并返回到父窗口时,该按钮会再次消失.

#include <Windows.h>

LRESULT CALLBACK WndProc(HWND window, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
    case WM_CREATE:
        return 0;

    case WM_MOUSEMOVE:
        InvalidateRect(window, NULL, true);

        return 0;

    case WM_NCDESTROY:
        PostQuitMessage(0);
        break;
    }

    return DefWindowProc(window, uMsg, wParam, lParam);
}

int PASCAL WinMain(HINSTANCE hinst, HINSTANCE, LPSTR, int nShowCmd) {
    WNDCLASS wc;
    wc.style         = 0;
    wc.lpfnWndProc   = WndProc;
    wc.cbClsExtra    = 0;
    wc.cbWndExtra    = 0;
    wc.hInstance     = hinst;
    wc.hIcon         = NULL;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = …
Run Code Online (Sandbox Code Playgroud)

c++ user-interface winapi ws-ex-transparent

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

使用带有继承变量的初始化列表

我一直在摆弄一个程序大约20分钟,我发现由于某种原因它不会让我在初始化列表中使用继承的变量.这个程序,例如:

class A {
protected:
        int i;
};

class B : public A {
public:
        B() : i(45) { }
};

int main() {
        B b;
}
Run Code Online (Sandbox Code Playgroud)

会给出错误

错误:类'B'没有任何名为'i'的字段

但是,如果您将构造函数更改为:

B() { i = 45; }
Run Code Online (Sandbox Code Playgroud)

它汇编.

我从来不知道你不能初始化继承的变量.我的问题是,为什么?

c++ inheritance initializer-list

4
推荐指数
1
解决办法
165
查看次数