Tag: JavaScript

在JavaScript原型函数中保留对“this”的引用

我只是开始使用原型JavaScript,我无法弄清楚如何在范围更改时从原型函数内部保留对主对象的引用。 让我来说明我的意思(我在这里使用jQuery): MyClass = function() { this.element = $('#element'); this.myValue = 'something'; // some more code } MyClass.prototype.myfunc = function() { // at this point, "this" refers to the instance of MyClass this.element.click(function() { // at this point, "this" refers to the DOM element // but what if I want to access the original "this.myValue"? […]

在JavaScript中触发键盘事件

我试图在Safari中使用JavaScript来模拟键盘事件。 我试过这个: var event = document.createEvent("KeyboardEvent"); event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0); 还有这个: var event = document.createEvent("UIEvents"); event.initUIEvent("keypress", true, true, window, 1); event.keyCode = 115; 但是,在尝试这两种方法之后,我遇到了同样的问题:代码执行后,事件对象的keyCode /属性设置为0 ,而不是115 。 有谁知道如何可靠地创建和发送在Safari中的键盘事件? (如果可能的话,我宁愿用普通的JavaScript来实现它。)

jQuery XML与命名空间解析

我是新来的jQuery,并想分析一个XML文档。 我能够使用默认的名称空间解析常规的XML,但使用XML,如: <xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"> <s:Schema id="RowsetSchema"> <s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30"> <s:AttributeType name="ows_ID" rs:name="ID" rs:number="1"> <s:datatype dt:type="i4" dt:maxLength="4" /> </s:AttributeType> <s:AttributeType name="ows_DocIcon" rs:name="Type" rs:number="2"> <s:datatype dt:type="string" dt:maxLength="512" /> </s:AttributeType> <s:AttributeType name="ows_LinkTitle" rs:name="Title" rs:number="3"> <s:datatype dt:type="string" dt:maxLength="512" /> </s:AttributeType> <s:AttributeType name="ows_ServiceCategory" rs:name="Service Category" rs:number="4"> <s:datatype dt:type="string" dt:maxLength="512" /> </s:AttributeType> </s:ElementType> </s:Schema> <rs:data> <z:row ows_ID="2" […]

如何获得ElementElementByClass而不是Javascript的GetElementById?

我试图根据每个DIV的类来切换网站上某些DIV元素的可见性。 我正在使用一个基本的JavaScript片段来切换它们。 问题是脚本只使用getElementById,因为Javascript中不支持getElementByClass。 不幸的是,我不得不使用类而不是id来命名DIV,因为DIV名称是由我的XSLT样式表使用某些类别名称动态生成的。 我知道某些浏览器现在支持getElementByClass,但由于Internet Explorer不,我不想走这条路线。 我已经找到了使用函数来获取元素的脚本(比如这个页面上的#8: http : //www.dustindiaz.com/top-ten-javascript/ ),但我不知道如何将它们集成与我的切换脚本。 这是html代码。 由于在使用XML / XSLT进行页面加载时生成了DIV,因此DIV本身缺失。 非常感谢。 主要问题:如何获得下面的切换脚本来获取元素的类,而不是通过ID获取元素? <html> <head> <!–This is the TOGGLE script–> <script type="text/javascript"> <!– function toggle_visibility(id) { var e = document.getElementById(id); if(e.style.display == 'block') e.style.display = 'none'; else e.style.display = 'block'; } //–> </script> </head> <!–the XML/XSLT page contents will be loaded […]

jQuery选择器用于在名称属性中使用方括号的输入

我试图选择名称属性中有方括号的元素: <input type="text" name="inputName[]" value="someValue"> 我试过这个(不起作用): $('input[inputName[]=someValue]') 这也不是: $('input[inputName[]=someValue]') 或这个: $('input["inputName[]"=someValue]') 编辑:正如你已经指出, $('input[inputName=someValue]')将永远不会工作。 我想要做的是: $('input[name=inputName][value=someValue]') 。 (但在名称属性中使用[] )。

在后台打开一个新标签?

使用JavaScript,我想打开一个新的页面在不同的标签,但仍然关注当前标签。 我知道我可以这样做: open('http://example.com/'); focus(); 但是,当我使用chrome进行这个操作时,在切换回当前选项卡之前,会闪烁新的选项卡片刻。 我想避免这一点。 该应用程序是一个个人书签,所以它只能在最新的Chrome中工作。

正则表达式来得到大括号之间的字符串“{我想要大括号之间}”

不幸的是,尽管我至少每年都要学习一次正则表达式,但我经常忘记,因为我很少使用它。 今年我的新年的决心是不要再尝试和学习正则表达式 – 所以今年,为了不让我流泪,我会给它堆栈溢出 。 (去年圣诞节重新混音) 我想以这种格式{getThis}传递一个字符串,并返回字符串getThis 。 任何人都可以帮助坚持我的新年决议? 有关堆栈溢出的相关问题: 如何将正则引号(即“,”)转换成LaTeX / TeX引号(即“,“`') 正则表达式:拉出一个字符串中两个标签之间的一个子字符串 正则表达式来替换一个字符串中的所有\ n,但是没有那些[code] [/ code]标签里面的那些

如何过滤angularJS中的多个值(OR操作)

我想在角度中使用filter ,并希望过滤多个值,如果它具有任何一个值,那么它应该显示。 我有这样的结构: 一个有属性genres的对象movie ,我想过滤Action和Comedy 。 我知道我可以做filter:({genres: 'Action'} || {genres: 'Comedy'}) ,但如果我想动态地过滤,该怎么办。 例如filter: variableX 如何在$scope设置variableX ,当我有一个流派的数组,我必须过滤? 我可以构造它作为一个字符串,然后做一个eval()但我不想使用eval()…

如何在contenteditable元素(div)中设置插入符(光标)的位置?

我有这个简单的HTML作为例子: <div id="editable" contenteditable="true"> text text text<br> text text text<br> text text text<br> </div> <button id="button">focus</button> 我想要简单的东西 – 当我点击按钮,我想把光标(光标)放在可编辑div的特定位置。 从网上搜索,我有这个JS附加到按钮点击,但它不工作(FF,铬): var range = document.createRange(); var myDiv = document.getElementById("editable"); range.setStart(myDiv, 5); range.setEnd(myDiv, 5); 是否可以像这样设置手动插入位置?

有效地替换字符串中的所有重音字符?

对于一个穷人在客户端执行接近正确的排序,我需要一个JavaScript函数,可以在字符串中进行高效的单字符替换。 这是我的意思(注意,这适用于德语文本,其他语言排序不同): 本地排序得到错误:abcouzäöü 排序校正将是:a b bcoöuüz 基本上,我需要将所有出现的“ä”替换为“a”(以此类推)。 这样,本地排序的结果将非常接近用户期望的(或者数据库将返回的)。 其他语言也可以这样做: Python提供str.translate() ,在Perl中有tr/…/…/ , XPath有一个函数translate() , ColdFusion有ReplaceList() 。 但是JavaScript呢? 这是我现在所拥有的。 // s would be a rather short string (something like // 200 characters at max, most of the time much less) function makeSortString(s) { var translate = { "ä": "a", "ö": "o", "ü": "u", "Ä": "A", "Ö": […]