Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите как написать функцию (https://javascript.ru/forum/misc/36963-podskazhite-kak-napisat-funkciyu.html)

Vasy 02.04.2013 16:41

Подскажите как написать функцию
 
Есть xml файл
<?xml version="1.0" ?>
<test>
<style  border="5px solid black" hight="350px"  width="350px"  padding="20px" margin="0px" position="relative" ></style>
</test>


и есть JS код где я вытаскиваю эти стили и присваиваю div

<!DOCTYPE html>
<html>
 
<head>
 
  
 
  
 
<meta  charset="utf-8" />
    <title>Test</title>
     
  
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  
<script type="text/javascript">
 
                         
 
var g_xml;
$(document).ready(function(){
         
        $.ajax({
            type: "GET", 
            url: "http://localhost/aaa/test.xml",
            dataType: "xml",
            success: vasa  
        });

function vasa(xml) {
 var div = document.getElementById('divi');
               div.style.border = $(xml).find('style').attr('border');
                div.style.width = $(xml).find('style').attr('width');
                div.style.height = $(xml).find('style').attr('hight');
                div.style.padding = $(xml).find('style').attr('padding');
                div.style.margin = $(xml).find('style').attr('margin');
                div.style.position = $(xml).find('style').attr('position');
        }
      
         
});
</script>
 
</head>
<body>
<form onsubmit="return false">


    <div id="divi"> </div>
 

</form>
 
 
</body>
 
</html>


Так вот в чем собственно вопрос.Подскажите пожалуйста,как забирать атрибуты <style> из xml документа с помощью фукции,а не присваивать их явно диву по отдельности?Ну типа что-бы я мог добавить ище несколько атрибутов в <style> в xml документе и они были у <div> с id="divi" ,и мне не нужно было влазить в код при добавлении ище нескольких атрибутов из xml документа?

danik.js 02.04.2013 18:56

У элементов есть свойство attributes, хранящее ноды всех назначенных атрибутов. И кажется я тебе даже код давал.

patyatka 02.04.2013 19:38

я вот так переписал твою функцию vasa и получил возможность добавлять любое кол-во атрибутов в xml, не меняя vasa:
function vasa(xml) {
	var attr, attrObj = {};
	attr = $(xml).find("style")[0].attributes;	
	for(var key = 0; key < attr.length; key++) {
		attrObj[attr[key].nodeName] = attr[key].value;	
	};
	$("#divi").css(attrObj);
}

Vasy 03.04.2013 15:27

Цитата:

Сообщение от patyatka (Сообщение 243974)
я вот так переписал твою функцию vasa и получил возможность добавлять любое кол-во атрибутов в xml, не меняя vasa:
function vasa(xml) {
	var attr, attrObj = {};
	attr = $(xml).find("style")[0].attributes;	
	for(var key = 0; key < attr.length; key++) {
		attrObj[attr[key].nodeName] = attr[key].value;	
	};
	$("#divi").css(attrObj);
}

Я так понял вы проходите по всем атрибутам(их значениям) и присваиваете их сюда
attrObj[attr[key].nodeName]
.А я несовсем понял ведь ноденейм выведет нам имена всех узлов.А што тогда будет здесь
attr[key].value;

а потом выводите как css?
Спасибо вам большое вы мне очень помогли.


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