Tag: dom

正则表达式在页面上找到包含内部标签的单词

感谢Chetan Sastry我有这个正则表达式代码来解析我的页面以获取单词列表并将TM添加到它们中。 var wordList = [“jQuery UI”, “jQuery”, “is”]; var regExp = new RegExp(“\\b” + wordList.join(“\\b|\\b”) + “\\b”, “g”); var $elem = $(“#divWithText”); $elem.html($elem.html().replace(regExp, “$&™”)); 这个正则表达式几乎是我需要的。 但是,链接看起来像: jQuery 它最终将TM附加到href内部的jQuery而不是标记之间的jQuery。 任何人都可以帮忙吗? 我要查找的单词列表是非常具体的产品名称,它们可能出现在标签内的唯一位置是在这样的链接中。

jQuery替换了许多类中的字符串

我正在尝试使用jQuery来替换在某个类中出现的特定字符串的所有出现。 页面上有多个此类型的类。 到目前为止,我有以下代码: var el = $(‘div.myclass’); if(el != null && el.html() != null ) { el.html(el.html().replace(/this/ig, “that”)); } 如果有多个具有类myclass div,则这不起作用。 如果有多个div,那么第二个div将替换为第一个div的内容! 就好像jQuery在第一个div上执行替换,然后用结果替换myclass所有类。 谁知道我应该怎么做? 我正在考虑在mychass div的所有实例上进行某种循环 – 但我的JS有点弱。

如何将事件处理程序绑定到JQuery中的实例?

我试图使用JQuery将事件绑定到Javascript“类”的特定实例的“方法”。 要求是我在事件处理程序中应该能够使用“this”关键字来引用我最初绑定事件的实例。 更详细地说,我有一个“类”如下: function Car(owner) { this.owner = owner; } Car.prototype = { drive: function() { alert(“Driving “+this.owner+”s car!”); } } 一个例子: var myCar = new Car(“Bob”); 我现在想要将一个事件绑定到我的汽车的驱动器“方法”中,这样​​当我点击一个按钮时,例如在Car“类”的myCar实例上调用驱动器“method”。 到目前为止,我一直在使用以下函数创建一个闭包,允许我使用“方法”中的“this”关键字轻松访问实例成员。 function createHandler( obj, method ) { return function( event ) { return obj[method](event||window.event); } } 我用过如下: document.getElementById(“myButton”) .addEventListener(“click”, createHandler(myCar,”drive”)); 我如何用JQuery完成这样的事情? 我特别要求将“this”与指定的实例联系起来,我可以独自处理另一个问题。

JQUERY DOM:选择Dom Load后创建的元素

我正在开发一个项目,我需要在调用函数时更改某个类的所有选择输入的值。 问题是当首次加载dom时,某些选择输入不存在,它们是通过Javascript动态创建的。 该函数适用于选择加载页面时存在的所有选择输入,但不适用于动态添加到dom的任何选择输入。 我理解使用.on绑定事件,但在这种特殊情况下,我并不是想关闭像click这样的事件。 我希望在调用此函数时获取此类的所有元素。 这是我用来创建新选择元素的代码。 var this_cell = document.getElementById(‘produce_batch_line_td[‘+x+’]’); var new_select = document.createElement(“select”); new_select.name = “produce_batch_line[“+x+”]”; new_select.id = “produce_batch_line[“+x+”]”; new_select.className = “produce_batch_line[“+invoice_number+”]”; this_cell.appendChild(new_select); var new_option = document.createElement(“option”); new_option.text = “test”; new_option.value = “test”; new_select.add(new_option); 这是我用来选择这个类的所有选择元素的代码。 function SetDetailValue(invoice_number, obj) { $(“.produce_batch_line\\[“+invoice_number+”\\]”).each(function() { this.value = obj.value; }); } 如何动态地将此类的项添加到dom中?

如何使用按钮更改Phantomjs中的当前页面?

我已经开始使用Phantomjs了,我不明白。 如何使用按钮更改当前页面? 例如,我有一个代码: var page = require(‘webpage’).create(); page.open(‘https://ru-ru.facebook.com’, function() { page.injectJs(‘jQuery.js’); page.evaluate(function() { $(‘#email’).val(‘MyLogin’); $(‘#pass’).val(‘MyPass’); $(‘#u_0_l’).click(); }); page.render(‘example.png’); phantom.exit(); }); 所以点击一个按钮后我需要转到下一页。 我怎样才能做到这一点?

javascript将事件绑定到类名的更改

是否有可能在javascript / jQuery中将函数绑定到更改或分配新类的DOM元素的类名?

在iFrame(jQuery)中检测DOM就绪状态

我有一个脚本在一个文档中运行,该文档可能嵌套在iframe中,也可能不嵌套在iframe中。 我已经解决了检测嵌套的问题,但我无法弄清楚当它是iframe时如何检测DOM的就绪状态。 这是我已经拥有的: if (window.self !== window.top) { // is nested // DOM ready test here // execute code here } else { // is not nested $(document).ready(function() { // execute code here }); } 我已经阅读过这篇文章 ,但我没有看到我的具体问题的答案。 我可能误解了那里的解决方案,所以请随时纠正我。 编辑:这似乎是一个Fancybox问题。 这段代码: alert(document.getElementById(‘username’).className); document.getElementById(‘username’).focus(); 我看到一个具有正确值的警报,但表单元素没有收到焦点。 这告诉我,检测DOM的就绪状态不是问题。 我试图使用的原始脚本是这样的: $(document).ready(function() { $(‘input.focus:last’).focus(); }); 编辑2 /解决方案:我不得不求助于Fancybox特定的解决方案,因为它似乎是特定于Fancybox的问题。 我将此行添加到这些Fancybox iframed表单的配置中: ‘onComplete’:function(){$(‘input.focus:last’).focus();}

Phantomjs刮网页function无法正常工作

我正在使用phantomjs来学习如何抓取一个网页,到目前为止我已经开发了以下代码..我知道我能够连接到该网站,但我无法从表中获取数据…我走在正确的轨道上? 我的目标是从本网站的表格中删除数据。 我也明白我需要使用includeJs或者injectJs来等待表加载其他我会抓一个空的html页面。 我试图将这些概念放在一起,但现在已经停留了3天以上..请给出一些指导.. var page = require(‘webpage’).create(); console.log(‘Welcome to scraping…’); page.open(‘http://www.inc.com/inc5000/index.html’, function(status) { page.includeJs(“http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js”, function() { if (status !== ‘success’) { console.log(‘Unable to access network’); } else { var ua = page.evaluate(function() { var DATA = []; var res= document.getElementById((this).find(‘td’)).eq(0).text(); console.log(res); //**See output below for what is happening here** $(‘tr.ng-scope’).each(function(){ var $tds = $(this).find(‘td’); […]

选择以“abc”开头并以“xyz”结尾的元素

我的页面中有元素,例如“abc_1_2_3_xyz”。如何在Jquery中选择以“abc”开头并以“xyz”结尾的元素? $(‘div[id^=”abc”], div[id$=”xyz”]’);

链式方法调用对原始元素或克隆元素不起作用,为什么?

我有以下HTML: Make Select2 Make Input 然后看看下面的jQuery: $(function() { var cond1 = $(‘#condition_value_1’); var cloned_cond1 = cond1.clone(); var cond1_select = ‘Opt1Opt2’; $(‘#showme’).click(function() { cond1.removeAttr(‘style’).replaceWith(cond1_select).select2({ placeholder: ‘Select choice’ }); }); $(‘#clickme’).click(function() { if ($(‘#condition_value_1’).hasClass(‘select2-hidden-accessible’)) { $(“#condition_value_1”).select2(‘destroy’); } $(‘#condition_value_1’).replaceWith(cloned_cond1).removeAttr(‘style’); }); }); 您可以尝试上面的代码。 现在,一旦你单击#showme你应该删除attr样式,用给定的元素替换原始元素并将其转换为Select2,最后一部分不起作用。 另一方面,如果单击#clickme ,则应该销毁先前的Select2,将#condition_value_1替换为克隆元素并删除attr样式,因为克隆具有该属性,但这也不起作用。 我们的想法是在元素之间切换,并根据需要打开/关闭属性。 也许我在这里遗漏了一些东西,但我不确定是什么。 能帮到我吗?