Autor Zpráva
tester
Profil *
Snažím se najít/vrátit tag iframe jehož atribut class obsahuje hodnotu "wysiwyg"

  $('iframe').filter(function () {
    return this.className.match(/\bwysiwyg/);
  })
  )

Problémem je že vrací dva výsledky a ten druhý neobsahuje wysiwyg.



A taky bych potřeboval aby to bylo case insensitive, ale není mi jasné co tam dělá to \b. Zkusil jsem to napsat takto:
this.className.match(/wysiwyg/i);
a opět jsem dostal dva výsledky
juriad
Profil
1) Ta metoda match se provádí nad obyčejným řetězcem, to nemá s Jquery nic společného.

2) To se vážně nemůžeš spolehnout na třídu toho iframe? Je snad někdy jiná než cke_wysiwyg_frame?
Pokud by ti stačilo jen přesný výskyt (a nikoli case-insensitive), můžeš použít: $('iframe[class*=wysiwyg]')

3) \b znamená, že se jedná o hranici slova; pro podrobnosti viz Regular Expressions.
S tím \b by ti to nemělo vrátit žádný iframe, protože "wysiwyg" předchází podtržítko, které je word character.
Ta varianta s regexem /wysiwyg/i by měla být správně.

Na té stránce poradte.cz není přilinkované JQuery, takže to nemůžu otestovat. Také tam vidím jen jeden iframe.
Můj odhad je, že filter se z nějakého důvodu vůbec neprovede.

Opraven překlep todo -> toho
tester
Profil *
Nerozumím co myslíš tím todo iframe? To vidíš kde? Píšu program který by měl být univerzální takže o co se snažím je najít iframe který obsahuje nějaký editor. Nic jiného než hledat ve třídě mě nenapadlo.
tester
Profil *
Už jsem přišel na to jak to udělat
var iframeDoc = $("iframe[class~='wysiwyg']")
Ovšem jak to mám napsat když potřebuju aplikovat styly na elementy uvnitř toho iframu?

Pro aktuální stránku to dělám takto:
add_styles =
function(task){
  for ( var k in task.search )
    $(task.search[k]).css(task.css[k]);
}

task.search obsahuje selektory. task.css obsahuje styly. A tak potřebuju něco předřadit na začátek... co řekne, hledej to uvnitř toho iframu..


body se nachází pod iframeDoc[0]

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0