Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вставить текст (https://javascript.ru/forum/dom-window/59958-vstavit-tekst.html)

FoxGid 04.12.2015 15:27

Вставить текст
 
добрый день. Имеется следующий код php страницы.



Не могу понять какой скрипт вставить чтоб он изменял следующий за ним блок. id у объектов могут меняться.

apogei 04.12.2015 15:59

Если я правильно понял то
$('body').find('p').text('новый текст');

или
$('body').find('p').eq( 0 ).text('новый текст');

Mess4me 04.12.2015 16:21

FoxGid,
или так

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<p>hello</p>
<p>hello</p>

<script>

//    setInterval('alert("Удачи Вам!")', 3000)
 $('body > p:first-child').html('New text here'); 

</script>

</body>
</html>

FoxGid 07.12.2015 08:29

Вставил но не получилось. Хотя делал проверки типа таких и он мне возращал YES.
if ($('body').find('p').eq( 0 ) != null) // if ($('body').find('p') != null)
            {
                console.log("YES");
            }
            else
            {
                console.log("NO");
            }

$('body').find('p').eq( 0 ).text('новый текст');

так же вставлял код который дал Mess4me но тоже ничего в поле не вставлялось.
Может и не важно но данная страница формируется движком LMS в виде php страницы.

FoxGid 07.12.2015 10:46

попробовал вывести
console.log("text="+$('body > p:first-child').html);

и получил
text=function (a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)}

DynkanMaclaud 07.12.2015 12:53

тег <p> в котором нужно изменить значение находится во фрейме, значит не поменять тебе его)))

Mess4me 07.12.2015 14:03

Цитата:

Сообщение от FoxGid
console.log("text="+$('body > p:first-child').html);

Вы забыли скобки поставить после html() и записать туда значение ,если надо.

FoxGid 08.12.2015 13:02

вставил
console.log("text="+$('body > p:first-child').html());
получил
text=undefined.
Может по другому получиться?
Я могу найти блок
<div id="question_2">
Таких блоков может быть хоть сколько у всех в конце порядковый номер. Нахожу его так
function test(id, tx)
        {        
            console.log("4");
	        var el, el_b;
	        var nm='question_';
	        for (var i = 1; i < 9; i++)
	        {
	            el = parent.document.getElementById(nm+i);
	            console.log("ищем ->"+nm+i);
	            if (el != null) 
	                {
	                    console.log("нашли вопрос");
	                    el_b = el.getElementById('tinymce');// ошибка
	                    if (el_b != null)
	                    {
	                    	console.log("нашли body");
	                    }	
	                }
	            else {console.log("не нашли вопрос");break; }
	        }   
        }


Как в этом блоке найти 2 (в картинке) ? Хотел что то в этом роде
el_b = el.getElementById(ID);
чет не получается.

FoxGid 08.12.2015 13:08

Да он находиться во фрейме
<iframe id="question[68]_ifr" src='javascript:""' frameborder="0" allowtransparency="true" title="Rich Text AreaНажмите ALT-F10 для панели инструментов. Нажмите ALT-0 для справки." style="width: 100%; height: 100px; display: block;"></iframe>

FoxGid 08.12.2015 15:10

Кстати, сам скрипт вызываемый находиться во фрейме.


Часовой пояс GMT +3, время: 08:54.