Tag: dom

用于PHP DOMDocument的类jQuery选择器

我正在使用DOMDocument ,我想知道是否存在一些使用类似CSS的选择器来选择节点的方法,就像我们在jQuery中一样 。 示例情况:我正在解析XML文件,其中一个片段如下所示: Reference rates European Central Bank 使用类似jQuery的选择器访问此结构将非常简单。 例如,我可以使用 $(“Cube[currency]”) 使用’currency’属性检索所有Cube元素。 但是我怎么能用PHP的DOMDocument做同样的事情呢? 我想选择具有属性或具有特定属性值的元素。

JQuery方法和DOM属性

我很困惑何时可以使用DOM属性以及何时可以在Jquery对象上使用Jquery方法。 说,我使用选择器 var $elemSel = $(‘#myDiv’).find(‘[id *= \’select\’]’) 此时,$ elemSel是一个jquery对象,我理解它是DOM元素数组的包装器。 我可以通过遍历$ elemSel对象/数组来获取对DOM元素的引用(正确吗?) 我的问题:1。有没有办法将这个$ elemSel转换为非JQuery常规DOM元素数组? 2.我可以同时组合DOM属性和JQuery方法(类似这样) $elemSel.children(‘td’).nodeName (nodeName与DOM相关,children与JQuery相关) 编辑:这有什么问题? $elemSel.get(0).is(‘:checked’) 编辑2: 谢谢你的回复。 我现在明白我可以使用get(0)来获取DOM元素。 其他问题: 我如何将DOM元素转换为JQuery对象? 如果我将“this”赋给变量,是新的var DOM还是JQuery? 如果是JQuery,我该如何将其转换为DOM元素? (因为我不能使用get(0)) var $ elemTd = $(this); 当我执行上述任务时,我看到一些代码示例不包含变量名称的$符号。 为什么? 至于我原来的问题,我可以在JQuery对象上同时组合DOM属性和JQuery函数吗? $ elemSel.children( ‘TD’)。节点名称

如何在jQuery中放置target =“_ blank”?

我尝试了很多变种来将target=”_blank”放在与jQuery的链接中,但我无法让它工作。 这是我的代码: var thumbfile = “”; jQuery(document).ready(function () { var actualHost = jQuery.trim(jQuery.url.attr(“host”)); jQuery(“a img”).each(function (i) { if (jQuery.trim(jQuery.url.setUrl(jQuery(this).attr(“src”)).attr(“host”)) == actualHost && (jQuery.url.setUrl(jQuery(this).attr(“src”)).attr(“path”)).indexOf(“wp-content”) != -1 && isImage(jQuery.url.setUrl(jQuery(this).attr(“src”)).attr(“file”))) { var parentTag = jQuery(this).parent().get(0).tagName; parentTag = parentTag.toLowerCase(); if (parentTag == “a” && jQuery.url.setUrl(jQuery(this).parent().attr(“href”)).attr(“host”) == actualHost && jQuery.url.setUrl(jQuery(this).parent().attr(“href”)).attr(“path”).indexOf(“wp-content”) != -1 && isImage(jQuery(this).parent().attr(“href”))) { var description = (jQuery(this).attr(“alt”) == […]

在现代JavaScript应用程序中使用DOM Level 0的最佳实践

在现代JavaScript应用程序中是否有一套商定的“最佳实践”用于DOM Level 0集合 ? ( document.forms , document.images等) 在使用jQuery的应用程序中,我注意到,例如,使用$(…).html()更改下拉列表的内容以切换底层节点,而不是使用element.options[] 。 这是因为最好避免使用DOM 0集合,还是因为jQuery使更改底层DOM结构变得更容易? 编辑:我想部分问题包括旧function是否可靠的跨浏览器。 我记得很久以前,IE会自动将 标签添加到你的桌面,而firefox则不会。 这使得走在dom树上痛苦的跨浏览器。 同样, element.options[] 在更改集合中的选项时遇到问题 。 这些家伙是否可靠跨浏览器?

将html附加到jQuery元素而不在html中运行脚本

我编写了一些代码,它使用一串html并使用jQuery清除任何丑陋的HTML(请参阅此SO问题中的早期原型)。 它工作得很好,但我偶然发现了一个问题: 当使用.append()将html包装在div中时,代码中的所有脚本元素都会被评估并运行(请参阅此SO答案以解释为什么会发生这种情况)。 我不想要这个,我真的只是希望将它们删除,但我可以在以后自己处理它,只要它们没有运行。 我正在使用此代码: var wrapper = $(”).append($(html)); 我尝试这样做: var wrapper = $(” + html + ”); 但是这只会在IE中引入append()函数修复的“拒绝访问”错误(参见上面引用的答案)。 我想我可能能够重写我的代码,不需要围绕html包装,但我不确定,而且我想知道是否可以在不运行脚本的情况下附加html,无论如何。 我的问题: 如何在不运行脚本的情况下包装一段未知的html,最好完全删除它们? 我应该将jQuery抛出窗口并使用纯JavaScript和DOM操作来实现吗? 那会有帮助吗? 我不想做的事: 我不是想在客户端放置某种安全层。 我非常清楚这是毫无意义的。 更新:詹姆斯的建议 詹姆斯建议我应该过滤掉脚本元素,但是看看这两个例子(原始的第一个和詹姆斯的建议): jQuery(“”).append(“helloconsole.log(‘gnu!’); there”) 保留文本节点但写入gnu! jQuery(“”).append(jQuery(“helloconsole.log(‘gnu!’); there”).not(‘script’))` 不写gnu!,但也丢失了文本节点。 更新2: 詹姆斯已经更新了他的答案,我接受了。 不过,请参阅我对他的回答的最新评论。

validation字符串是否是有效的HTML标记名称

如何确定字符串是否是有效的HTML标记? 例如:a,或h1,div或span,…是有效的HTML标记名。 但ar,或abc,或div2,…是invaild。 var Str = ‘strongg’; if( IsValid(Str) ) { // do something } 谢谢。 PS我认为,这不是一个愚蠢的问题,我在这里找到了一个很好的解决方案(见下文)。 但我不知道为什么这个post有“-3”? 想知道!

用户向下滚动并到达页面中心时检测

目前,我有以下代码,用于检测用户何时开始滚动以及是否已到达页面中心。 $(window).scroll(function() { if ($(window).scrollTop() > $(window).height() / 2) { //Load more posts } }); 但是我遇到的问题是,无论何时用户开始滚动,上面的脚本都会触发。 因此,如果用户向上滚动以查看以前的post,则会加载更多post。 如果用户位于中心并且只滚动了一小部分,则脚本会加载更多post。 我的问题是,有没有办法确定用户何时开始向下滚动并已到达新resize的页面的中心,因为有更多的附加post。 谢谢

我可以使用JQuery操作外部HTML文档吗?

我想清理一个HTML文档(在谷歌文档中创建),以便我可以在我的CMS上发布它。 我有一个字符串源文件,从头到尾,有标题,样式,正文等。我想提取正文内容并替换/删除一些标签。 如果我可以使用jQuery做到这一点,我认为它比使用更复杂的html解析器更容易。 但是当我试图获取文档的正文时,我得不到可用的结果。 我试过了: var gdoc = “…google document…” $(gdoc) //list of text nodes, can not rebuild to document or find body $(“body”,gdoc) //empty list 这是可行的还是我对此完全错了? 您可以分享的任何提示/参考?

你能解决吗? 使用数组的JavaScript轮播实现

我无法解决这个问题,你能解决吗? 我需要你的专家建议如何在JS vanilla或jQuery(可选)中做到这一点。 jsfiddle上的代码示例将受到高度赞赏。 我必须在列表中显示一个包含5个元素的数组,一次限制为3 var range = [0,1,2,3,4]; 0 1 2 prev next 当用户点击“下一步”时,我需要在第一个“li”上添加一个“焦点”类。 0 1 2 再次点击“下一步” 0 1 2 点击“下一步”…… 0 1 2 点击“下一步”…注意数组移位 1 2 3 点击“下一步”…arrays移位 2 3 4 点击“下一步”…但我不能再继续了,因为数组中没有要显示的元素,所以如果我点击“prev”我想反过来 点击“上一个”… 2 3 4 点击“上一个”… 2 3 4 点击“prev”…注意数组移位 1 2 3 点击“prev”…注意数组移位 0 1 2 点击“prev”…没有任何事情发生它我们到达开始去arrays 0 1 2 […]

一个类型的jQuery .prev(),无论它是父类等

是否有一种简单的方法来获取DOM中先前出现的元素? 如果我正在查看#text3 ,我想获得之前的输入#text2 。 Choose your race! Text 3: .prev(‘input’)不起作用,因为它在父.prevAll(‘input’)内部.prevAll(‘input’)似乎也只搜索父级…我在这里遗漏了什么? 这感觉它应该比$(‘#text3’).parent().prev().find(‘input’)容易得多$(‘#text3’).parent().prev().find(‘input’) :D