簡體   English   中英

Javascript調用隱藏和存儲字符串文本作為LI標簽中的變量

[英]Javascript invoke hide and store string text as variable within LI tag

使用這個問題,我能夠隱藏包含一些字符串文本的列表元素。 我想重用這些<LI></LI>標記中的所有內容,但是要重用頁面中的其他位置。 LI標簽的全部內容可以變化,但是將共享一個我可以用來調用hide的公共元素。 在成功隱藏所有代碼后,是否可以通過某種方式來調整此代碼以將找到的所有內容存儲為變量?

Event.observe(window, "load", function(){

$$("li:contains('Full Listing Information:')").invoke("hide");
});

只需將其分配給變量即可。

var listings;
Event.observe(window, "load", function(){
    listings = $$("li:contains('Full Listing Information:')");
    listings.invoke("hide");
});

想象一下,您在頁面上的其他地方有一個div#output ,並且您想要將列表項的文本放入其中,每個項目都包裝在h2中。 我們還假設您想將其他列表項(與選擇器不匹配的項)留在原處。 這應該可以解決問題:

document.observe('dom:loaded', function(){
  var listings = $$("li:contains('Full Listing Information:')").invoke('hide').map(function(elm){ return elm.innerText });
  var t = new Template('<h2>#{text}</h2>')
  listings.each(function(str){
    $('output').insert(t.evaluate({text: str}))
  });
});

在第一行中,您首先隱藏每個匹配的列表項,然后將它們中的文本內容提取到數組中。 最后三行遍歷該數組,每轉一個新的h2,然后將其插入到您的收件人div中。 運行此操作之前,外部包裝程序僅確定DOM是穩定的。 它可以在頁面其余部分可見之前運行,因此您不必擔心Flash of Unstyled Content。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM