天道酬勤,学无止境

PHP 中是否有 JQuery DOM 操作器/CSS 选择器等效类?(Is there a JQuery DOM manipulator/CSS selector equivalent class in PHP?)

问题

我知道我可以使用 DOMDocument 和 DOMXPath 来操作 XML 文件。 但是,我真的很喜欢 JQuery,如果 PHP 世界中有更像 JQuery 的东西可以用于服务器端 DOM 操作,那就太好了。

注意:我只对 JQuery 如何选择和操作 DOM 感兴趣,而不对 JQuery 的所有其他部分感兴趣(我猜你可以只说 Pop 和 Sizzle 部分)。


更新:
看起来选择器函数有一个等价物,但就操作函数而言,我想我必须坚持使用 DOMDocument。
回答1

好吧,排除所有 JavaScript 特定的内容,您将使用 CSS 选择器引擎:

http://framework.zend.com/manual/en/zend.dom.query.html

享受 :)

回答2

您可以使用 phpQuery

它自我描述如下: phpQuery 是一个 PHP5 服务器端、可链接、CSS3 选择器驱动的文档对象模型 (DOM) API,基于 jQuery JavaScript 库。

回答3

是的,HtmlPageDom 正是根据您的要求编写的。

回答4

@retro:他要的是一个像 sizzle 这样的库,它使用 PHP 作为语言而不是 javascript,你所说的“无需更改编写它”是错误的,它只是代码,你可以写多少就写多少想。

然而,我认为的问题是,在浏览器中运行的 javascript 会为您提供 +1 访问 DOM 系统的机会,这可以帮助您自动创建大量 dom 节点/html 节点,而无需您自己动手。

在 php 中,DOM 很痛苦,jquery 很高兴地将其隐藏起来,并且由于 javascript 的工作方式与 PHP 不同,因此它可以毫不费力地做到这一点,但是 PHP 无法访问浏览器 DOM 并且具有不同的操作方法,它远不止这些痛苦。

这并不是说这是不可能的,因为它是,只是它并不那么容易,有时当似乎没有明确的原因时它会有所不同,我相信可能是 PHP DOM 内部使用 libXML 或类似的东西并且在内部公开了太多该库,因此 PHP 被 C 库语义弄得混乱不堪。

我认为您应该查看 phpQuery(https://github.com/TobiaszCudnik/phpquery),或者更好的并且正在积极开发中的 QueryPath (http://querypath.org)。

但是,不要指望它们像 javascript jquery 库一样简单,因为不幸的是,它不是.....

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 是否存在不区分大小写的jQuery:包含选择器?(Is there a case insensitive jQuery :contains selector?)
    问题 是否存在不区分大小写的:包含jQuery选择器的版本,还是我应该通过循环遍历所有元素并将它们的.text()与我的字符串进行比较来手动完成工作? 回答1 我最终为jQuery 1.2做的是: jQuery.extend( jQuery.expr[':'], { Contains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0" }); 这将扩展jquery以使其不区分大小写的:Contains选择器,:contains选择器保持不变。 编辑:对于jQuery 1.3(感谢@ user95227)和更高版本,您需要 jQuery.expr[':'].Contains = function(a,i,m){ return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0; }; 编辑:显然通过使用直接访问DOM (a.textContent || a.innerText || "") 代替 jQuery(a).text() 在前面的表达式中,它大大提高了速度,因此如果速度有问题,请您自担风险。 (请参阅@John的问题) 最新编辑:对于jQuery 1.8,它应该是: jQuery.expr[":"].Contains =
  • 是否有等效于 jQuery 的 :first 选择器在 CSS3 中?(Is there an equivalent to jQuery's :first selector in CSS3?)
    问题 我有以下标记: <div class="a"></div> <div class="b"></div> <!-- :first --> <div class="b"></div> <div class="b"></div> <!-- :last --> <div class="c"></div> 我试图用b类定位第一个和最后一个<div> 。 如果我为此使用 jQuery 选择器, .b:first和.b:last就可以了。 但是对于 CSS,这很棘手:第一个<div class="b">位于另一个具有不同类的<div>之后,并且 :first-child 和 :first-of-type 都匹配第一个<div> , a类。 是否有针对与类匹配的第一个项目的选择器? 回答1 不,没有与 jQuery 的:first或:last选择器等效的 CSS 选择器,因为这些选择器是过滤器,而不是 CSS 定义中真正的简单选择器。 在 Selectors 3 中也没有:first-of-class或类似的选择器。 但是,您可以使用带有~组合器的覆盖规则将样式应用于某个类的第一个子类: 带有类的第一个元素的 CSS 选择器用于选择给定类的第一个元素的 CSS 选择器 但是目前没有办法使用 CSS 将样式应用到某个类的最后一个孩子:
  • 从jQuery选择器创建DOM元素(Create DOM element from jQuery selector)
    问题 我想知道是否有可能代替我通过创建jQuery选择器从DOM中选择一个元素。 例如: $.create('#hello').insertAfter('#test'); 将生成以下内容: <div id="test">This element already existed in the DOM.</div> <div id="hello"></div> 或者,更好的是,对于更复杂的操作: $.create('#test.a.b'); 为了: <div id="test" class="a b"></div> 显然,更复杂的操作如:selected或:nth-​​child或:not()以及所有这些都不需要实现。 有人知道解决方案吗? 谢谢。 回答1 要创建<div id="hello"></div> 尝试 $('<div id="hello"></div>').appendTo('body'); 要创建与<div id="test" class="ab"></div>相同的 $('<div id="test" class="a b"></div>').appendTo('body'); $('<div id="test" class="ab"></div>')将创建新元素,但不会将其添加到DOM。 要添加该元素,您需要使用append()或appendTo(
  • JQuery-学习笔记01【基础——JQuery基础】
    Java后端 学习路线 笔记汇总表【黑马程序员】 JQuery-学习笔记01【基础——JQuery基础】——【day01】JQuery-学习笔记02【基础——JQuery选择器】JQuery-学习笔记03【基础——DOM操作】JQuery-学习笔记04【基础——JQuery基础案例】JQuery-学习笔记05【高级——JQuery动画和遍历】——【day02】JQuery-学习笔记06【高级——JQuery事件绑定和切换】JQuery-学习笔记07【高级——JQuery高级案例】 目录 第1节 JQuery基础 今日内容 JQuery_概念 JQuery_快速入门 JQuery_对象和JS对象区别与转换 JQuery_事件绑定&入口函数&样式控制 JQuery文档——jQuery1.11.3_hemin.chm jQuery 选择器分类 第1节 JQuery基础 今日内容 1. JQuery(JavaScript框架)基础: 1. 概念 2. 快速入门 3. JQuery对象和JS对象区别与转换 4. 选择器 5. DOM操作 6. 案例 JQuery_概念 JQuery 基础 1. 概念: 一个JavaScript框架(半成品软件),简化JS开发。 * jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库
  • 如何从jQuery对象获取选择器(How can I get selector from jQuery object)
    问题 $("*").click(function(){ $(this); // how can I get selector from $(this) ? }); 有没有一种简单的方法来从$(this)获取选择器? 有一种通过其选择器选择元素的方法,但是如何从元素中获取选择器呢? 回答1 好的,所以在问题上方的评论中, Fidilip者Fidilip说他/她真正要追求的是获取当前元素的路径。 这是一个脚本,它将“爬升” DOM祖先树,然后构建相当特定的选择器,包括在单击的项目上的任何id或class属性。 看到它在jsFiddle上运行:http://jsfiddle.net/Jkj2n/209/ <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function() { $("*").on("click", function(e) { e.preventDefault(); var selector = $(this) .parents() .map(function() { return this.tagName; }) .get() .reverse()
  • 您如何在PHP中解析和处理HTML / XML?(How do you parse and process HTML/XML in PHP?)
    问题 如何解析HTML / XML并从中提取信息? 回答1 本机XML扩展 我更喜欢使用本机XML扩展之一,因为它们与PHP捆绑在一起,通常比所有第3方库都快,并为我提供了所需的标记控制权。 判断 DOM扩展使您可以使用PHP 5通过DOM API通过XML文档进行操作。它是W3C的Document Object Model Core Level 3的实现,它是一种平台和语言无关的界面,允许程序和脚本动态访问和更新。文件的内容,结构和样式。 DOM能够解析和修改真实世界(损坏的)HTML,并且可以执行XPath查询。 它基于libxml。 使用DOM需要花一些时间,但是IMO值得花时间。 由于DOM是与语言无关的接口,因此您会发现许多语言的实现,因此,如果您需要更改编程语言,那么您很可能已经知道如何使用该语言的DOM API。 一个基本的用法示例可以在Gradinging A element的href属性中找到,而一般的概念性概述可以在php中的DOMDocument中找到。 StackOverflow上已广泛讨论了如何使用DOM扩展,因此,如果您选择使用它,则可以确保可以通过搜索/浏览Stack Overflow来解决所遇到的大多数问题。 XMLReader XMLReader扩展是XML提取解析器。 阅读器充当光标,在文档流上前进,并在途中的每个节点处停止。 像DOM一样
  • jQuery与document.querySelectorAll(jQuery vs document.querySelectorAll)
    问题 我多次听到jQuery最强大的资产就是它查询和操作DOM中元素的方式:您可以使用CSS查询来创建复杂的查询,而这在常规javascript中是很难做到的。 但是,据我所知,您可以使用document.querySelector或document.querySelectorAll获得相同的结果,而Internet Explorer 8及更高版本均支持。 所以问题是这样的:如果可以用纯JavaScript实现最强大的资产,为什么要“冒险” jQuery的开销呢? 我知道jQuery不仅具有CSS选择器,例如跨浏览器AJAX,漂亮的事件附加等。但是它的查询部分是jQuery实力的很大一部分! 有什么想法吗? 回答1 document.querySelectorAll()在不同的浏览器中存在多个不一致,并且在较旧的浏览器中不受支持。如今,这可能不会再造成任何麻烦。 它具有非常不直观的作用域机制和其他一些不太好用的功能。 另外,使用javascript时,您将很难处理这些查询的结果集,在许多情况下,您可能想要这样做。 jQuery提供了对它们进行处理的功能,例如: filter() , find() , children() , parent() , map() , not()以及其他一些功能。 更不用说jQuery具有与伪类选择器一起使用的功能。 但是
  • 您如何在PHP中解析和处理HTML / XML?(How do you parse and process HTML/XML in PHP?)
    问题 如何解析HTML / XML并从中提取信息? 回答1 本机XML扩展 我更喜欢使用本机XML扩展之一,因为它们与PHP捆绑在一起,通常比所有第3方库都快,并为我提供了所需的所有标记控制权。 判断 DOM扩展使您可以通过带有PHP 5的DOM API通过XML文档进行操作。它是W3C的Document Object Model Core Level 3的实现,它是一种与平台和语言无关的界面,允许程序和脚本动态访问和更新。文件的内容,结构和样式。 DOM能够解析和修改真实世界(损坏的)HTML,并且可以执行XPath查询。 它基于libxml。 使用DOM需要花一些时间,但是IMO值得花时间。 由于DOM是与语言无关的接口,因此您会发现许多语言的实现,因此,如果您需要更改编程语言,那么您很可能已经知道如何使用该语言的DOM API。 可以在Grabbing A元素的href属性中找到一个基本的用法示例,并且可以在php的DOMDocument中找到常规的概念概述。 如何使用DOM扩展已在StackOverflow上进行了广泛介绍,因此,如果您选择使用它,则可以确保可以通过搜索/浏览Stack Overflow来解决所遇到的大多数问题。 XMLReader XMLReader扩展是XML提取解析器。 阅读器充当光标,在文档流上前进,并在途中的每个节点处停止。 像DOM一样
  • 您如何在PHP中解析和处理HTML / XML?(How do you parse and process HTML/XML in PHP?)
    问题 如何解析HTML / XML并从中提取信息? 回答1 本机XML扩展 我更喜欢使用本机XML扩展之一,因为它们与PHP捆绑在一起,通常比所有第3方库都快,并为我提供了所需的所有标记控制权。 判断 DOM扩展使您可以使用PHP 5通过DOM API通过XML文档进行操作。它是W3C的Document Object Model Core Level 3的实现,它是一种平台和语言无关的界面,允许程序和脚本动态访问和更新。文件的内容,结构和样式。 DOM能够解析和修改真实世界(损坏的)HTML,并且可以执行XPath查询。 它基于libxml。 使用DOM需要花一些时间,但是IMO值得花时间。 由于DOM是与语言无关的接口,因此您会发现许多语言的实现,因此,如果您需要更改编程语言,那么您很可能已经知道如何使用该语言的DOM API。 一个基本的用法示例可以在Gradinging A element的href属性中找到,而一般的概念性概述可以在php中的DOMDocument中找到。 如何使用DOM扩展已在StackOverflow上进行了广泛介绍,因此,如果您选择使用它,则可以确保可以通过搜索/浏览Stack Overflow来解决所遇到的大多数问题。 XMLReader XMLReader扩展是XML提取解析器。 阅读器充当游标在文档流上前进并在途中的每个节点处停止的光标。
  • 笔记:全网最详细jQuery教程
    申明:本篇博客是学习舟炬教育课程:全网最详细jQuery讲解的课程笔记。 前言:在华为实习的两个月时间中,接触了jQuery,因为所做的前端工作是基于Angular框架的,本身有许多需求在实现的时候都会比较复杂,在这个过程中,如果遇到比较难实现的需求,就会使用jQuery。这时候的jQuery仿佛是个消防员一样的存在。所以在现在vue等框架盛行的情况下,觉得还是有学习了解jQuery的必要,毕竟它提供了许多实现需求的方式方法,所以可以作为储备来学习。 目录 一、jQuery基础 1、获取jQuery 2、jQuery版本介绍 3、jQuery的兼容性引用方式 4、jQuery的使用 5、jQuery的特点 6、jQuery DOM对象 7、jQuery全局对象 二、jQuery选择器 三、jQuery属性与样式操作 1、属性操作:两个方法:attr()和prop() 2、CSS类操作 3、HTML代码/文本/值 四、jQuery样式操作 1、CSS操作 2、位置 3、尺寸 五、jQuery中的筛选操作 1、过滤操作 2、查找 3、串联 4、jQuery DOM对象的方法 六、jQuery DOM操作 1、创建元素 2、内部插入 3、外部插入 4、包裹 5、替换 6、删除 7、克隆 七、jQuery事件 1、事件绑定 2、解除事件绑定 3、事件委派 4、控制事件触发 5、事件列表
  • 02-jQuery的入口函数:入口函数写法、核心函数、与原生JS入口函数比较、解决$冲突问题
    jQuery的入口函数 一、jQuery的入口函数写法二、jQuery的核心函数核心函数用法:1、接收一个函数,入口函数核心函数用法:2、接收一个字符串(字符串选择器、代码片段)核心函数用法:3、 接收一个DOM元素 三、jQuery的入口函数以及与原生JS入口函数比较1、入口函数加载模式不同2、入口函数加载覆盖不同 四、解决jQuery的$冲突问题1、释放'$'的使用权,后面使用jQuery代替' $'2、自定义一个访问符号 一、jQuery的入口函数写法 <script> $(document).ready(function() { alert("第一种写法"); }); jQuery(document).ready(function() { alert("第二种写法"); }); $(function() { alert("第三种写法(推荐)"); }); jQuery(function() { alert("第四种写法"); }); </script> 二、jQuery的核心函数 $();就代表了jQuery的核心函数 核心函数用法:1、接收一个函数,入口函数 示例: <script> //入口函数 $(document).ready(function() { }); </script> 核心函数用法:2、接收一个字符串(字符串选择器、代码片段) 字符串选择器:var
  • 从DOM的特定元素中选择性复制HTML + CSS + JS的工具(Tools to selectively Copy HTML+CSS+JS From A Specific Element of DOM [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 4年前关闭。 改善这个问题 像大多数Web开发人员一样,我偶尔也喜欢查看网站的来源,以了解其标记是如何构建的。 Firebug和Chrome开发者工具之类的工具使检查代码变得容易,但是如果我要复制特定的部分并在本地使用它,则复制所有单个元素及其关联的CSS会很痛苦。 保存整个源代码并剪切不相关的代码可能也需要做很多工作。 如果可以在Firebug中右键单击一个元素,并具有“为此元素保存HTML + CSS + JS”选项,那就太好了。 是否存在这样的工具? 是否可以扩展Firebug或Chrome开发者工具来添加此功能? 回答1 SnappySnippet 我终于找到了一些时间来创建此工具。 您可以从Github安装SnappySnippet。 它允许从指定的(最后检查)的DOM节点轻松提取HTML + CSS。 此外,您可以将代码直接发送到CodePen或JSFiddle。 享受! 其他特性 清理HTML(删除不必要的属性,修复缩进) 优化CSS以使其可读完全可配置(可以关闭所有过滤器) 与::before和::after伪元素一起使用出色的UI,这要归功于Bootstrap和Flat-UI项目 代码 SnappySnippet是开源的
  • PHP CSS选择器库? [关闭](PHP CSS Selector Library? [closed])
    问题 从目前的情况来看,这个问题不适合我们的问答形式。 我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。 如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 是否有一个PHP类/库可以让我使用CSS选择器查询XHTML文档? 如果我能以某种方式使用CSS选择器(jQuery宠坏了我!),我需要刮掉一些页面以方便访问数据。 有任何想法吗? 回答1 在进一步谷歌搜索(初始结果不是很有帮助)之后,似乎实际上有一个Zend Framework库以及其他一些库: DOM查询 phpQuery 查询查询路径简单的HTML DOM解析器 Ultimate Web Scraper工具包 Zend-Dom 回答2 XPath是访问XML(和XHTML)节点的相当标准的方法,并且比CSS提供更高的精度。 回答3 另一个: http://querypath.org/ 回答4 一个很棒的组件是symfony 2的组件,CssSelector \ ParserIntroduction。 它将CSS选择器转换为XPath表达式。 看一看=) 源代码 回答5 对于jQuery用户而言,最有趣的是将jQuery移植到PHP ,即phpQuery 。 库的几乎所有部分都已移植。 另外,它包含WebBrowser插件
  • 哪些CSS选择器或规则会严重影响现实世界中的前端布局/渲染性能?(Which CSS selectors or rules can significantly affect front-end layout / rendering performance in the real world?)
    问题 值得担心CSS渲染性能吗? 还是我们不应该只担心CSS的效率,而只专注于编写优雅或可维护的CSS? 该问题旨在为前端开发人员提供有用的资源,其中CSS的哪些部分实际上会对设备性能产生重大影响,哪些设备/浏览器或引擎可能受到影响。 这不是关于如何编写优雅的或可维护的CSS的问题,而纯粹是关于性能的问题(尽管希望此处编写的内容可以为更多有关最佳实践的文章提供参考)。 现有证据 Google和Mozilla编写了有关编写高效CSS和CSSLint的规则的指导原则,其中包括: 避免看起来像正则表达式的选择器..不要使用复杂的等号运算符来避免性能损失 但是他们都没有提供任何证据(我可以找到)这些产生的影响。 一篇有关高效CSS的css-tricks.com文章(概述了效率最佳实践的负载之后)认为,如今,我们不应该not .. sacrifice semantics or maintainability for efficient CSS 。 一个完美的杀人博客文章表明, border-radius和box-shadow比简单的CSS规则慢了几个数量级。 这在Opera的引擎中意义重大,而在Webkit中则微不足道。 此外,一本砸碎杂志的CSS基准发现,CSS3显示规则的渲染时间微不足道,并且比使用图像渲染等效效果要快得多。 知道您的移动设备测试了各种移动浏览器,发现它们都以相同的速º
  • 类似于jQuery的PHP接口?(jQuery-like interface for PHP?)
    问题 我对是否存在用于处理HTML / XML文件的PHP的jQuery样式的界面/库感到好奇-特别是使用jQuery样式选择器。 我想做这样的事情(都是假设的): foreach (j("div > p > a") as anchor) { // ... } print j("#some_id")->html(); print j("a")->eq(0)->attr("name"); 这些只是几个例子。 我做了很多谷歌搜索,但是找不到我想要的东西。 有人知道这些方面是否存在吗,还是我自己必须使用domxml从头开始做这些事情? 回答1 PHP简单HTML DOM解析器使用jQuery样式的选择器。 文档中的示例: 修改HTML元素: // Create DOM from string $html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>'); $html->find('div', 1)->class = 'bar'; $html->find('div[id=hello]', 0)->innertext = 'foo'; echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World<
  • web前端javascript+jquery知识点总结
    Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。浏览器对象模型(Browser Object Model,BOM)用于同HTML的交互,如弹出一个警示框,询问框,输入框…文档对象模型(Document Object Model,DOM)用于操作HTML的文档节点如鼠标,键盘,的移动按下的触发事件。 基本语法 <script type="text/javascript"> //Jacascript 语句 <!-- 可将script语句写入此处,忽略浏览器差异! --> document.write("初学JavaScript"); document.write("<h1>Hello,Javascript</h1>"); <script> type=“text/javascript” 在HTML5中可以省略 执行原理 解析HTML标签和JavaScript然后浏览器向服务器发送请求包含js的请求页面,服务器解析完成后返回包含js的响应页面给客户端。 优点
  • 是否有可以在C#中使用的类似jQuery的CSS / HTML选择器?(Is there a jQuery-like CSS/HTML selector that can be used in C#?)
    问题 我想知道是否存在可以在C#中使用的类似jQuery的CSS选择器。 目前,我正在使用正则表达式解析一些html字符串,并认为在jQuery中使用诸如css选择器之类的东西来匹配所需元素会更好。 回答1 您肯定应该看到@jamietre的CsQuery。 看看他对这个问题的答案! Fizzler和Sharp-Query提供了类似的功能,但是这些项目似乎被放弃了。 回答2 更新10/18/2012 CsQuery现在在1.3版中。 最新版本合并了Validator.nu HTML5解析器的C#端口。 结果,CsQuery现在将生成一个使用HTML5规范进行无效标记处理且完全符合标准的DOM。 原始答案 旧问题但新答案。 我最近发布了CsQuery 1.1版,这是一个用C#编写的.NET 4的jQuery端口,已经使用了大约一年。 同样在NuGet上作为“ CsQuery” 当前版本实现了所有CSS2和CSS3选择器,所有jQuery扩展以及所有jQuery DOM操作方法。 它具有广泛的测试范围,包括来自jQuery和sizzle(jQuery CSS选择引擎)的所有测试。 我还提供了一些性能测试,可以直接与Fizzler进行比较。 在大多数情况下,CsQuery的性能都大大超过了它。 实际上,唯一的例外是首先将HTML加载到Fizzler更快的位置。
  • jQuery click,bind,live,delegate,trigger和on功能之间的区别(示例)?(Difference between jQuery `click`, `bind`, `live`, `delegate`, `trigger` and `on` functions (with an example)?)
    问题 我已经在jQuery官方网站上阅读了每个函数的文档,但是以下函数之间没有这样的比较列表: $().click(fn) $().bind('click',fn) $().live('click',fn) $().delegate(selector, 'click', fn) $().trigger('click') // UPDATED $().on('click', selector ,fn); // more UPDATED 请避免任何参考链接。 以上所有功能如何正确发挥作用?在哪种情况下应优先使用? 注意:如果还有其他具有相同功能或机制的功能,请详细说明。 更新 我也看到了$.trigger函数。 它的工作原理与上述功能相似吗? 更多更新 现在。对在V1.7加入,我觉得这个莫名其妙地覆盖所有的上述功能要求一起。 回答1 在阅读本文之前,请将该事件列表拉到另一页,API本身是非常有用的,并且我在下面讨论的所有内容都直接从此页面链接。 首先,.click(function)实际上是.bind('click',function)的快捷方式,它们是等效的。 将处理程序直接绑定到元素时,可以使用它们,如下所示: $(document).click(function() { alert("You clicked somewhere in the page, it bubbled to
  • 如何使用CSS选择文本节点(How to select a text node with CSS)
    问题 我有以下HTML标记: <h1> <div class="sponsor"> <span>Hello</span> </div> World </h1> 当我使用CSS选择器h1 ,会显示Hello World 。 不幸的是,我不能更改标记,而只能使用CSS选择器,因为我使用的是聚合RSS提要的系统。 是否有我只能接受文本节点的CSS选择器? 在这个例子中具体是World吗? 回答1 CSS的当前状态无法执行此操作,请检查以下链接:W3C 这里的问题是您写入屏幕的内容没有显示在DOM:P中。 另外::outside似乎还没有工作(至少对我来说是Safari 6.0.3),或者它根本还没有产生预期的结果。 检查我的小提琴,然后检查DOM源:JSfiddle 最后,有a { content: attr(href);}属性选择器a { content: attr(href);} ,使CSS能够读取DOM节点属性。 似乎还没有与之等效的innerHTML 。 如果可能的话,那将是很好的选择,而您也许可以操纵标签的内部标记。 回答2 这几乎与我上周提出的问题相反:可以在不使用纯CSS的类或标识符的情况下,在容器内选择纯文本的第一个元素吗? 最简洁的答案是不。 在此示例中, "World"不是其自身的元素-因此无法选择它。 您在这里要做的是设置h1样式,然后使用div
  • 使用JQuery更改:besscs选择器的width属性(Changing width property of a :before css selector using JQuery [duplicate])
    问题 这个问题已经在这里有了答案: 使用javascript(或jQuery)选择和操作CSS伪元素,例如:: before和:: after (23个答案) 2年前关闭。 我的页面中有图片,并且使用:before CSS选择器设置了样式。 图片是动态的,因此没有固定的宽度; 所以我需要动态设置:before规则的宽度。 我想在客户端使用JQuery做到这一点。 假设: .column:before{ width: 300px; float: left; content: ""; height: 430px; } .column{ width: 500px; float: right; padding: 5px; overflow: hidden; text-align: justify; } 如何使用JQuery仅使用:before选择器更改类的width属性(如果没有,则不更改它)? 回答1 我不认为有直接访问伪类规则的jQuery方法,但是您总是可以在文档的头部附加一个新的style元素,例如: $('head').append('<style>.column:before{width:800px !important;}</style>'); 在这里观看现场演示 我还记得曾经见过一个可以解决此问题的插件,但不幸的是,在第一次谷歌搜索时我找不到它。 回答2