javascript - 如何对整个字符串使用过滤器?

标签 javascript jquery html filter selector

我有一个图片编辑器和一个 HTML 编辑器。当我更改 piceditor 中子行的值时,它应该更新 html 编辑器中的 alt 属性。

我使用:

function refreshEditorAlt(pic,newalt){
  cnt=getEditorContent();
  var newcnt = cnt.replace($(cnt).filter("img[src$='"+pic+"']").attr('alt'), newalt);
  setEditorContent(newcnt);
}

它会一直工作,直到 HTML 编辑器的源(cnt 变量)中的 img 标签没有被例如div 标签。

//works
<img alt="pic1" src="http://tools.huber-verlag.de/data/18139/1.jpg" /> 
//does not work
<div><img alt="pic1" src="http://tools.huber-verlag.de/data/18139/1.jpg" /></div> 

我确信 $(cnt).filter 会查看整个 cnt。

所以问题是,当被视为 DOM 时,如何过滤位于字符串中但不在根中的标签的属性?

最佳答案

.filter 过滤实际元素,这些元素被包装(选择)在 jQuery 对象中。要深入 DOM 树,您需要使用 .find :

$(cnt).find("img[src$='"+pic+"']"). ...

或更短:

$("img[src$='"+pic+"']", cnt). ...

关于javascript - 如何对整个字符串使用过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23628566/

相关文章:

javascript - 合并数组搜索功能不起作用

javascript - 悬停时如何在chart.js中的特定点添加水平线?

javascript - 使用 JavaScript 的 split 将字符串切碎并放入两个数组中

jquery - 事件选项卡上的 CSS 选项卡箭头

javascript - 使用 JavaScript 从 HTML 表格中获取特定的单元格值

javascript - Canvas 视口(viewport)

javascript - 将原型(prototype)代码转换为 JQuery

javascript - 使用 JS 以编程方式加载 CSS

javascript - 聚焦 div 而不跳转到它

html - 仅为 Safari 浏览器添加一个选择选项