Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带JS的站点属性(续)_Javascript_Properties - Fatal编程技术网

Javascript 带JS的站点属性(续)

Javascript 带JS的站点属性(续),javascript,properties,Javascript,Properties,根据我在这里提出的问题: 我使用下面的代码将文本从一个div传递到另一个div,只要数据目标等于页面上的某个元素类 $('#sp').children().each(function() { $($(this).data().target).html($(this).html()); }); 但是,我想知道是否可以在页面上键入与数据目标值相等的文本,而不是将文本传递给html元素,然后将该文本替换为数据目标中的文本。例如: <div id="sp" style="display:

根据我在这里提出的问题: 我使用下面的代码将文本从一个div传递到另一个div,只要数据目标等于页面上的某个元素类

$('#sp').children().each(function() {
    $($(this).data().target).html($(this).html());
});
但是,我想知道是否可以在页面上键入与数据目标值相等的文本,而不是将文本传递给html元素,然后将该文本替换为数据目标中的文本。例如:

<div id="sp" style="display:none;">
<span data-target=".busFullName">My Great Company</span>
</div>

<!-- On some page -->
<p>sp.busFullName has been around since 1920</p>

<!-- Rendered text would be -->
<p>My Great Company has been around since 1920</p>

我伟大的公司
自1920年以来,sp.busFullName一直存在

我的大公司从1920年就存在了

这样,我就不必每次使用创建的属性时都创建额外的标记


如有任何见解,将不胜感激。谢谢。

我认为您不应该采用这种方法,因为如果客户端环境中没有JavaScript,它会使代码在语义上变得毫无意义,并且有点难以理解。我在这里是这样说的:

(function(){
    // Containing element's ID
    var boxID = "#sp";
    // All data-target elements within containing element
    $("[data-target]", boxID).html(function(a,b){
        // Pattern of #id.targetValue
        var pattern = boxID.slice(1) + $(this).data("target");
        // Find everything in body that contains this pattern
        $(":contains("+pattern+")", "body").html(function(c,d){
            // Replace instances of pattern in html with html
            return d.replace(pattern, b);
        });
    });
})();​

演示:

您可以这样做,但从语义上讲,代码将毫无意义,如果没有JavaScript,代码将无法理解。还想做吗?@JonathanSampson是的,我想知道怎么做。我知道有一小部分人会关闭js,但在这种情况下,很多网站功能无论如何都会被破坏。你认为哪种方式更好?我在服务器端编码方面没有那么丰富的经验,所以我需要一些建议。如果需要的话,调用一个单独的html页面来保存属性数据目标值可能会有所帮助,这与在页面上呈现属性数据目标值类似。你对此有什么想法也会有帮助。谢谢。属性显示正确,但代码破坏了页面上的许多其他内容。我不知道这是为什么,但是当我使用它的时候,它会从页面中删除body标签。在你的脚本中,(a,b)和(c,d)是什么意思?我相信它被用在了另一个函数上,这是一个冲突。@trobbins26我已经更新了它;它不应该影响身体元素。一定要用一个元素来替换
“body”
,该元素与可能包含目标值的所有元素更接近。遇到了一个小问题。当页面上有超过1个名称实例时,它将无法识别超过第一个实例的名称。。。有什么想法吗?