草庐IT

javascript - 如何观察 'a' 标签的内容 - jquery

coder 2024-05-10 原文

我有一个空白<a>内容通过外部 javascript 加载到的标记。我想观察 <a>并在其内容更改时执行另一项任务。内容只会更改一次。

这可以做到吗?

我也在使用 jQuery。

提前致谢

最佳答案

您可以混合使用 jQuery && DOM Level 3 事件(请参阅下面的浏览器支持)。

如果您想检查内容中的任何更改,您可以这样做:

var $a = $('a');

$a.one('DOMNodeInserted', function(e) {
    console.log('content changed!: ', e);    

    console.log('new content: ', $(this).html());   
});

$a.one('DOMAttrModified', function(e) {
    console.log('attribute changed!: ');        

    console.log('attribute that was changed: ', e.attrName);
});

请参阅此代码:http://jsfiddle.net/wJbMj/1/

引用:DOMNodeInserted , DOMAttrModified


虽然上述解决方案对我来说实际上非常方便,但它只适用于支持这些事件的浏览器。要获得更通用的解决方案,您可以 Hook 到 jQuerys setter 方法中。此解决方案的缺点是,您只能捕获通过 jQuery 完成的更改。

var _oldAttr = $.fn.attr;
$.fn.attr = function() {
    console.log('changed attr: ', arguments[0]);
    console.log('new value: ', arguments[1]);
    return _oldAttr.apply(this, arguments);
};

您可以使用完全相同的方式连接到 .text().html()。您需要检查覆盖方法中的 this 值是否表示正确的 DOMnode。

关于javascript - 如何观察 'a' 标签的内容 - jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5154882/

有关javascript - 如何观察 'a' 标签的内容 - jquery的更多相关文章

  1. c# - 如何使用 SqlCommand 以参数化数据库名称创建数据库? - 2

    简而言之。我有两个简单的助手:privateSqlCommandCreateCommand(stringtext){SqlCommandcmd=newSqlCommand();cmd.Connection=connection;cmd.CommandType=CommandType.Text;cmd.CommandText=text;returncmd;}voidSetParameter(SqlCommandcmd,stringp,stringdbName){cmd.Parameters.Add(p,SqlDbType.NVarChar);cmd.Parameters[p].Value

  2. c# - 'big' 使用 Poco 和 ORM 有什么优势? - 2

    我想到的一个优势是,如果您使用Poco类进行Orm映射,您可以轻松地从一个ORM切换到另一个,如果两者都支持Poco。拥有不支持Poco的ORM,例如映射是使用DataObjects.NetOrm等属性完成的,对我来说不是问题,Poco支持的Orms及其生成的代理实体也是如此,您必须意识到实体实际上是绑定(bind)到某些上下文/session的DAO对象,例如序列化是一个问题,等等。 最佳答案 POCO一切都与松散耦合和可测试性有关。因此,当您进行POCO时,您可以单独测试领域模型(例如,如果您正在进行DDD)。您不必担心它是如何

  3. c# - 如何在给定 Dictionary<TKey,TValue> 类型的情况下获取 TKey 和 TValue 的类型 - 2

    我想在给定Dictionary<TKey,TValue>的情况下获取TKey和TValue的类型类型。例如。如果类型是Dictionary<Int32,String>我想知道如何获得keyType=typeof(Int32)和valueType=typeof(字符串) 最佳答案 我认为这可能是您正在寻找的:Dictionary<int,string>dictionary=newDictionary<int,string>();Type[]arguments=dictionary.Get

  4. c# - 如何从 C# 执行 .sql? - 2

    对于某些集成测试,我想连接到数据库并运行一个.sql文件,该文件具有实际运行测试所需的架构,包括GO语句。如何执行.sql文件?(或者这是完全错误的方法吗?)我找到了apostintheMSDNforum显示此代码:usingSystem.Data.SqlClient;usingSystem.IO;usingMicrosoft.SqlServer.Management.Common;usingMicrosoft.SqlServer.Management.Smo;namespaceConsoleApplication1{classProgram{staticvoidMain(string

  5. c# - 如何销毁C#中的静态类 - 2

    我正在使用.net1.1。我有一个session类,我在其中存储了许多静态变量,这些变量保存了一些供许多类使用的数据。我想找到一种简单的方法来销毁这个类,而不是一个一个地重置每个变量。例如,如果有一个静态类MyStatic,我想通过写MyStatic=null来销毁/从内存中删除这个类,这目前是不可能的,附加问题。单例的想法很好,但是我有以下问题:如果实现了singleton,'single'对象仍然会保留在内存中。在单例中,我们只检查一个实例是否已经存在。我怎样才能确保这个实例变量也被销毁。我有一个主类,它初始化静态类中的变量。即使我计划实现一个Rest()方法,我也需要从一个方法中

  6. c# - 如何使用 "www"URL 重定向到没有 "www"URL,反之亦然? - 2

    我正在使用ASP.NET2.0C#。我想将所有带有“www”的网络应用程序请求重定向到不带“www”www.example.com到example.com或者example.com到www.example.comStackoverflow.com已经在这样做了,我知道PHP(.htaccess)文件中有一个预制机制。但是如何在asp.net中做到这一点?谢谢 最佳答案 有一篇关于此的Stackoverflow博客文章。https://blog.stackoverflow.com/2008/06/dropping-the-www-pr

  7. c# - 如何将 Bitmap 转换为 byte[]? - 2

    基本上,我使用ListView插入事件插入图像,尝试从文件上传控件调整图像大小,然后使用LINQ将其保存在SQL数据库中。我找到了一些代码来创建fileupload控件中内容的新位图,但这是为了将其存储在服务器上的文件中,来自thissource,但我需要将位图保存回SQL数据库,我认为我需要将其转换回byte[]格式。那么如何将位图转换为byte[]格式呢?如果我以错误的方式解决这个问题,我将不胜感激,您可以纠正我。这是我的代码://FindthefileUploadcontrolstringfilename=uplImage.FileName;//Createabitmapinme

  8. c# - 使用 AJAX MVC 4 填充 DropDownList - 2

    我有一个包含2个@DropDownListFor助手的View:@using(Html.BeginForm("CreateOneWayTrip","Trips")){@Html.ValidationSummary(false);<fieldset><legend>EnterYourTripDetails</legend><label>StartPoint</label>@Html.DropDownListFor(m=>m.StartPointProvince,(SelectList)Vie

  9. c# - 当我在 if 子句中放置一个关闭的 div 标签时,Razor 会提示 - 2

    我正在尝试使用Razor模板来执行此操作:@if(isNew){<divclass="new">}...@if(isNew){</div>}错误是:cannotresolvethesymbol'div'Razor不喜欢IF子句中的结束div标记,我怎样才能让它工作?我必须使用转义吗? 最佳答案 Razor不喜欢像这样拆分开始/结束标记,因为它无法正确解析HTML,因此您必须将它们转义为纯文本:@if(isNew){@:<divclass="new">

  10. c# - C#中如何从数组中获取随机值 - 2

    这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Accessrandomiteminlist我有一个包含数字的数组,我想从这个数组中获取随机元素。例如:{0,1,4,6,8,2}。我想选择6并将这个数字放在另一个数组中,新数组的值为{6,....}。我使用random.next(0,array.length),但这给出了长度的随机数,我需要随机数组数。for(inti=0;i<caminohormiga.Length;i++){if(caminohormiga[i]==0){continue;}for(intj=0;j<caminohormiga

随机推荐

  1. c# - 当我在 if 子句中放置一个关闭的 div 标签时,Razor 会提示 - 2

    我正在尝试使用Razor模板来执行此操作:@if(isNew){<divclass="new">}...@if(isNew){</div>}错误是:cannotresolvethesymbol'div'Razor不喜欢IF子句中的结束div标记,我怎样才能让它工作?我必须使用转义吗? 最佳答案 Razor不喜欢像这样拆分开始/结束标记,因为它无法正确解析HTML,因此您必须将它们转义为纯文本:@if(isNew){@:<divclass="new">

  2. c# - LINQ 按字母顺序排列,后跟空字符串 - 2

    我有一个字符串集合:"","c","a","b".我想使用LINQsorderby以便顺序按字母顺序排列,但最后是空字符串。所以在上面的例子中,顺序是:"a","b","c","" 最佳答案 你可以使用类似的东西:varresult=new[]{"a","c","","b","d",}.OrderBy(string.IsNull

  3. c# - 从 linq to sql 中的子查询中选择前 1 个结果 - 2

    下面是我的sql查询selectenq_Id,enq_FromName,enq_EmailId,enq_Phone,enq_Subject,enq_Message,enq_EnquiryBy,enq_Mode,enq_Date,ProductId,(selecttop1image_namefromtblProductImageasiwherei.product_id=p.product_Id)asimageName,p.product_Name,p.product_codefromtblEnquiryaseinnerjointblProductaspONe.ProductId=p.pr

  4. c# - 在 asp.net gridview 中禁用文本换行 - 2

    输出是这样的:MyNameIsJohnSmithAndImaperson我想要的是只显示一行MyNameIsJohnSmithAndImaperson我的Aspxgridview代码是:<asp:GridViewID="GridView1"runat="server"BackColor="LightGoldenrodYellow"BorderColor="Tan"BorderWidth="1px"CellPadding="5"Font-Names="Calibri"Fo

  5. c# - XML字符串反序列化为c#对象 - 2

    我收到这样的xml文件。<radio><channelid="Opus"><display-name>Opus</display-name><iconsrc=""/></channel><channelid="Klasika"><display-name>Klasika</display-name><iconsrc=""/></channel><channelid="LR"

  6. c# - C#中如何从数组中获取随机值 - 2

    这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Accessrandomiteminlist我有一个包含数字的数组,我想从这个数组中获取随机元素。例如:{0,1,4,6,8,2}。我想选择6并将这个数字放在另一个数组中,新数组的值为{6,....}。我使用random.next(0,array.length),但这给出了长度的随机数,我需要随机数组数。for(inti=0;i<caminohormiga.Length;i++){if(caminohormiga[i]==0){continue;}for(intj=0;j<caminohormiga

  7. c# - 获取 Dictionary 中包含值 x 的所有键 - 2

    我有这个:Dictionary<integer,string>dict=newDictionary<integer,string>();我想选择字典中包含值abc的所有项目。是否有内置函数可以让我轻松地做到这一点? 最佳答案 好吧,使用LINQ合理简单:varmatches=dict.Where(pair=>pair.Value=="abc").Select(pair=>pair.Key);请注意,这不会有任何效率-它是一个O(N)操作,因为它需要检查每个条目。如果您需要经常这样做

  8. C# 不可变整数 - 2

    在Java中,字符串是不可变的。如果我们有一个字符串并对其进行更改,我们将获得由同一变量引用的新字符串:Stringstr="abc";str+="def";//nowstrreferstoanotherpieceintheheapcontaining"abcdef"//while"abc"isstillsomewhereintheheapuntiltakenbyGCIt'sbeensaidint和double在C#中是不可变的。这是否意味着当我们拥有int并稍后更改它时,我们会得到同一个变量“指向”的新int?同

  9. c# - Observable.Timer() : How to avoid timer drift? - 2

    在C#(.NET4.0)应用程序中,我使用ReactiveExtensions(2.0.20823.0)生成时间边界以将事件分组为聚合值。为了简化对生成的数据库的查询,这些边界需要在整个小时(或下例中的秒)对齐。使用Observable.Timer():vartime=DefaultScheduler.Instance;varstart=newDateTimeOffset(time.Now.DateTime,time.Now.Offset);varspan=TimeSpan.FromSeconds(1);start-=TimeSpan.FromTicks(start.Ticks%100

  10. c# - 读取大 TXT 文件,内存不足异常 - 2

    我想阅读大TXT文件,大小为500MB,首先我使用varfile=newStreamReader(_filePath).ReadToEnd();varlines=file.Split(new[]{'\n'});但它抛出内存异常,然后我尝试逐行读取,但在读取大约150万行后再次抛出内存异常using(StreamReaderr=newStreamReader(_filePath)){while((line=r.ReadLine())!=null)_lines.Add(line);}或者我用过foreach(varlinFile.ReadLines(_filePath)){